37 template <
typename DataType>
54 ITypeDispatcher<unsigned char>* dispatcher(
unsigned char* v)
override {
return m_container.instance(v); }
55 ITypeDispatcher<short>* dispatcher(
short* v)
override {
return m_container.instance(v); }
56 ITypeDispatcher<unsigned short>* dispatcher(
unsigned short* v)
override {
return m_container.instance(v); }
57 ITypeDispatcher<int>* dispatcher(
int* v)
override {
return m_container.instance(v); }
58 ITypeDispatcher<unsigned int>* dispatcher(
unsigned int* v)
override {
return m_container.instance(v); }
59 ITypeDispatcher<long>* dispatcher(
long* v)
override {
return m_container.instance(v); }
60 ITypeDispatcher<unsigned long>* dispatcher(
unsigned long* v)
override {
return m_container.instance(v); }
61 ITypeDispatcher<long long>* dispatcher(
long long* v)
override {
return m_container.instance(v); }
62 ITypeDispatcher<unsigned long long>* dispatcher(
unsigned long long* v)
override {
return m_container.instance(v); }
63 ITypeDispatcher<float>* dispatcher(
float* v)
override {
return m_container.instance(v); }
64 ITypeDispatcher<double>* dispatcher(
double* v)
override {
return m_container.instance(v); }
65 ITypeDispatcher<long double>* dispatcher(
long double* v)
override {
return m_container.instance(v); }
66 ITypeDispatcher<BFloat16>* dispatcher(BFloat16* v)
override {
return m_container.instance(v); }
67 ITypeDispatcher<Float16>* dispatcher(Float16* v)
override {
return m_container.instance(v); }
69 IControlDispatcher* controlDispatcher()
override {
return m_control; }
70 ISerializeDispatcher* serializeDispatcher()
override {
return m_serialize; }
74 template <
typename DataType>
void setDispatcher(ITypeDispatcher<DataType>* x)
76 DataType* ptr =
nullptr;
77 m_container.instance(ptr) = x;
80 void setDispatcher(IControlDispatcher* x) { m_control = x; }
81 void setDispatcher(ISerializeDispatcher* x) { m_serialize = x; }
93 bool m_is_delete_dispatchers =
false;