27 #include "services/daal_defines.h"
28 #include "data_management/data/data_serialize.h"
29 #include "data_management/data/data_collection.h"
33 namespace data_management
46 class DAAL_EXPORT AbstractCreator
55 virtual ~AbstractCreator() {}
61 virtual SerializationIface *create()
const = 0;
67 virtual int getTag()
const = 0;
77 template <
class Derived>
78 class Creator :
public AbstractCreator
87 SerializationIface *create() const DAAL_C11_OVERRIDE
92 int getTag() const DAAL_C11_OVERRIDE
94 return Derived::serializationTag();
105 class DAAL_EXPORT Factory
112 static Factory &instance();
118 void registerObject(AbstractCreator *creator);
124 SerializationIface *createObject(
int objectId);
128 Factory(
const Factory &);
129 Factory &operator = (
const Factory &);
135 using interface1::AbstractCreator;
136 using interface1::Creator;
137 using interface1::Factory;
daal::data_management::interface1::AbstractCreator::AbstractCreator
AbstractCreator()
Definition: factory.h:52
daal::data_management::interface1::Creator::getTag
int getTag() const DAAL_C11_OVERRIDE
Definition: factory.h:92
daal::data_management::interface1::Creator::Creator
Creator()
Definition: factory.h:82
daal::data_management::interface1::Factory
Class that provides factory functionality for objects implementing the SerializationIface interface...
Definition: factory.h:105
daal::data_management::interface1::SerializationIface
Abstract interface class that defines the interface for serialization and deserialization.
Definition: data_serialize.h:52
daal::data_management::interface1::Creator::create
SerializationIface * create() const DAAL_C11_OVERRIDE
Definition: factory.h:87
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:78
daal::data_management::interface1::AbstractCreator
Interface class used by the Factory class to register and create objects of a specific class...
Definition: factory.h:46