33class ARCCORE_MESSAGEPASSING_EXPORT Dispatchers
38 template <
typename DataType>
49 ~Dispatchers()
override;
56 ITypeDispatcher<short>* dispatcher(
short* v)
override {
return m_container.instance(v); }
57 ITypeDispatcher<unsigned short>* dispatcher(
unsigned short* v)
override {
return m_container.instance(v); }
58 ITypeDispatcher<int>* dispatcher(
int* v)
override {
return m_container.instance(v); }
59 ITypeDispatcher<unsigned int>* dispatcher(
unsigned int* v)
override {
return m_container.instance(v); }
60 ITypeDispatcher<long>* dispatcher(
long* v)
override {
return m_container.instance(v); }
61 ITypeDispatcher<unsigned long>* dispatcher(
unsigned long* v)
override {
return m_container.instance(v); }
62 ITypeDispatcher<long long>* dispatcher(
long long* v)
override {
return m_container.instance(v); }
63 ITypeDispatcher<unsigned long long>* dispatcher(
unsigned long long* v)
override {
return m_container.instance(v); }
64 ITypeDispatcher<float>* dispatcher(
float* v)
override {
return m_container.instance(v); }
65 ITypeDispatcher<double>* dispatcher(
double* v)
override {
return m_container.instance(v); }
66 ITypeDispatcher<long double>* dispatcher(
long double* v)
override {
return m_container.instance(v); }
67 ITypeDispatcher<BFloat16>* dispatcher(BFloat16* v)
override {
return m_container.instance(v); }
68 ITypeDispatcher<Float16>* dispatcher(Float16* v)
override {
return m_container.instance(v); }
70 IControlDispatcher* controlDispatcher()
override {
return m_control; }
71 ISerializeDispatcher* serializeDispatcher()
override {
return m_serialize; }
75 template <
typename DataType>
void setDispatcher(ITypeDispatcher<DataType>* x)
77 DataType* ptr =
nullptr;
78 m_container.instance(ptr) = x;
81 void setDispatcher(IControlDispatcher* x) { m_control = x; }
82 void setDispatcher(ISerializeDispatcher* x) { m_serialize = x; }
95 bool m_is_delete_dispatchers =
false;