| The Gaudi Framework v32r1 (f65d50dc)

ObjectFactory.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_DATAOBJECTFACTORY_H
2 #define GAUDIKERNEL_DATAOBJECTFACTORY_H
3
4 #include <Gaudi/PluginService.h>
5
6 class IInterface;
7 class DataObject;
8 class ContainedObject;
9
10 using ObjFactory = Gaudi::PluginService::Factory<IInterface*( IInterface* )>;
11 using DataObjFactory = Gaudi::PluginService::Factory<DataObject*()>;
12 using ContainedObjFactory = Gaudi::PluginService::Factory<ContainedObject*()>;
13
14 // Macros to declare component factories
15 #define DECLARE_OBJECT_FACTORY( x ) DECLARE_FACTORY( x, ObjFactory )
16 #define DECLARE_NAMESPACE_OBJECT_FACTORY( n, x ) \
17 using n::x; \
18 DECLARE_FACTORY( x, ObjFactory )
19
20 #define DECLARE_CONTAINEDOBJECT_FACTORY( x ) DECLARE_FACTORY_WITH_ID( x, x::classID(), ContainedObjFactory )
21 #define DECLARE_DATAOBJECT_FACTORY( x ) DECLARE_FACTORY_WITH_ID( x, x::classID(), DataObjFactory )
22
23 #endif // GAUDIKERNEL_OBJECTFactory_H
ContainedObjFactory
Gaudi::PluginService::Factory< ContainedObject *()> ContainedObjFactory
Definition: ObjectFactory.h:12
IInterface
Definition of the basic interface.
Definition: IInterface.h:244
PluginService.h
ContainedObject
All classes that their objects may be contained in an LHCb ObjectContainer (e.g.
Definition: ContainedObject.h:31
ObjFactory
Gaudi::PluginService::Factory< IInterface *(IInterface *)> ObjFactory
Definition: ObjectFactory.h:10
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
DataObjFactory
Gaudi::PluginService::Factory< DataObject *()> DataObjFactory
Definition: ObjectFactory.h:11