51 #include "services/daal_defines.h"
52 #include "data_management/data/data_serialize.h"
53 #include "data_management/data/data_collection.h"
57 namespace data_management
70 class DAAL_EXPORT AbstractCreator
79 virtual ~AbstractCreator() {}
85 virtual SerializationIface *create()
const = 0;
91 virtual int getTag()
const = 0;
101 template <
class Derived>
102 class Creator :
public AbstractCreator
109 virtual ~Creator() {}
111 SerializationIface *create() const DAAL_C11_OVERRIDE
113 return new Derived();
116 int getTag() const DAAL_C11_OVERRIDE
118 return Derived::serializationTag();
129 class DAAL_EXPORT Factory
136 static Factory &instance();
142 void registerObject(AbstractCreator *creator);
148 SerializationIface *createObject(
int objectId);
152 Factory(
const Factory &);
153 Factory &operator = (
const Factory &);
159 using interface1::AbstractCreator;
160 using interface1::Creator;
161 using interface1::Factory;
daal
Definition: algorithm_base_common.h:57
daal::data_management::interface1::Factory
Class that provides factory functionality for objects implementing the SerializationIface interface...
Definition: factory.h:129
daal::data_management::interface1::Creator
Main class used by the Factory class to register and create objects of a class derived from Serializa...
Definition: factory.h:102
daal::data_management::interface1::Creator::Creator
Creator()
Definition: factory.h:106
daal::data_management::interface1::Creator::create
SerializationIface * create() const DAAL_C11_OVERRIDE
Definition: factory.h:111
daal::data_management::interface1::Creator::getTag
int getTag() const DAAL_C11_OVERRIDE
Definition: factory.h:116
daal::data_management::interface1::AbstractCreator::AbstractCreator
AbstractCreator()
Definition: factory.h:76
daal::data_management::interface1::SerializationIface
Abstract interface class that defines the interface for serialization and deserialization.
Definition: data_serialize.h:76
daal::data_management::interface1::AbstractCreator
Interface class used by the Factory class to register and create objects of a specific class...
Definition: factory.h:70