Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IDispatchers.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IDispatchers.h (C) 2000-2025 */
9/* */
10/* Interface of the dispatcher container. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_IDISPATCHERS_H
13#define ARCCORE_MESSAGEPASSING_IDISPATCHERS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
23{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29/*!
30 * \brief Interface of the dispatcher container.
31 */
32class ARCCORE_MESSAGEPASSING_EXPORT IDispatchers
33{
34 public:
35
36 virtual ~IDispatchers() = default;
37
38 public:
39
40 virtual ITypeDispatcher<char>* dispatcher(char*) = 0;
41 virtual ITypeDispatcher<signed char>* dispatcher(signed char*) = 0;
42 virtual ITypeDispatcher<unsigned char>* dispatcher(unsigned char*) = 0;
43 virtual ITypeDispatcher<short>* dispatcher(short*) = 0;
44 virtual ITypeDispatcher<unsigned short>* dispatcher(unsigned short*) = 0;
45 virtual ITypeDispatcher<int>* dispatcher(int*) = 0;
46 virtual ITypeDispatcher<unsigned int>* dispatcher(unsigned int*) = 0;
47 virtual ITypeDispatcher<long>* dispatcher(long*) = 0;
48 virtual ITypeDispatcher<unsigned long>* dispatcher(unsigned long*) = 0;
49 virtual ITypeDispatcher<long long>* dispatcher(long long*) = 0;
50 virtual ITypeDispatcher<unsigned long long>* dispatcher(unsigned long long*) = 0;
51 virtual ITypeDispatcher<float>* dispatcher(float*) = 0;
52 virtual ITypeDispatcher<double>* dispatcher(double*) = 0;
53 virtual ITypeDispatcher<long double>* dispatcher(long double*) = 0;
54 virtual ITypeDispatcher<BFloat16>* dispatcher(BFloat16*) = 0;
55 virtual ITypeDispatcher<Float16>* dispatcher(Float16*) = 0;
56
57 virtual IControlDispatcher* controlDispatcher() = 0;
58 virtual ISerializeDispatcher* serializeDispatcher() = 0;
59};
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
63
64} // namespace Arcane::MessagePassing
65
66/*---------------------------------------------------------------------------*/
67/*---------------------------------------------------------------------------*/
68
69#endif
General declarations for the 'message_passing' component.
Half-precision floating-point type.
Interface of the dispatcher container.
Interface for serialization messages.
Declarations of types and methods used by message exchange mechanisms.