Arcane  4.1.12.0
Developer 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
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.
Manage control streams for parallel messages.
Interface of the dispatcher container.
Interface for serialization messages.
Parallel message handling for the type Type.
Declarations of types and methods used by message exchange mechanisms.