Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
IConverter.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_ICONVERTER_H
2 #define GAUDIKERNEL_ICONVERTER_H
3 
4 // Include files
5 #include "GaudiKernel/ClassID.h"
7 
8 // Forward declarations
9 class IDataProviderSvc;
10 class IAddressCreator;
11 class IConversionSvc;
12 class IOpaqueAddress;
13 class DataObject;
14 template <class T>
15 class SmartIF;
16 
58 class GAUDI_API IConverter : virtual public IInterface {
59 public:
62 
67  virtual StatusCode initialize() = 0;
68 
73  virtual StatusCode finalize() = 0;
74 
78  virtual const CLID& objType() const = 0;
79 
84  virtual long repSvcType() const = 0;
85 
90  virtual StatusCode setDataProvider( IDataProviderSvc* pService ) = 0;
91 
95  virtual SmartIF<IDataProviderSvc>& dataProvider() const = 0;
96 
101  virtual StatusCode setConversionSvc( IConversionSvc* pService ) = 0;
102 
106  virtual SmartIF<IConversionSvc>& conversionSvc() const = 0;
107 
112  virtual StatusCode setAddressCreator( IAddressCreator* creator ) = 0;
113 
117  virtual SmartIF<IAddressCreator>& addressCreator() const = 0;
118 
130  virtual StatusCode createObj( IOpaqueAddress* pAddress, DataObject*& refpObject ) = 0;
131 
141  virtual StatusCode fillObjRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
142 
152  virtual StatusCode updateObj( IOpaqueAddress* pAddress, DataObject* refpObject ) = 0;
153 
164  virtual StatusCode updateObjRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
165 
173  virtual StatusCode createRep( DataObject* pObject, IOpaqueAddress*& refpAddress ) = 0;
174 
181  virtual StatusCode fillRepRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
182 
189  virtual StatusCode updateRep( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
190 
198  virtual StatusCode updateRepRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
199 };
200 
201 #endif // GAUDIKERNEL_ICONVERTER_H
Small smart pointer class with automatic reference counting for IInterface.
Definition: IConverter.h:15
The data converters are responsible to translate data from one representation into another...
Definition: IConverter.h:58
IAddressCreator interface definition.
Data provider interface definition.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:13
Definition of the basic interface.
Definition: IInterface.h:244
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8
Opaque address interface definition.
#define GAUDI_API
Definition: Kernel.h:71
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30