IConverter.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_ICONVERTER_H
2 #define GAUDIKERNEL_ICONVERTER_H
3 
4 // Include files
6 #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> class SmartIF;
15 
57 class GAUDI_API IConverter: virtual public IInterface {
58 public:
61 
66  virtual StatusCode initialize() = 0;
67 
72  virtual StatusCode finalize() = 0;
73 
77  virtual const CLID& objType() const = 0;
78 
83  virtual long repSvcType() const = 0;
84 
89  virtual StatusCode setDataProvider(IDataProviderSvc* pService) = 0;
90 
94  virtual SmartIF<IDataProviderSvc>& dataProvider() const = 0;
95 
100  virtual StatusCode setConversionSvc(IConversionSvc* pService) = 0;
101 
105  virtual SmartIF<IConversionSvc>& conversionSvc() const = 0;
106 
111  virtual StatusCode setAddressCreator(IAddressCreator* creator) = 0;
112 
116  virtual SmartIF<IAddressCreator>& addressCreator() const = 0;
117 
129  virtual StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject) = 0;
130 
140  virtual StatusCode fillObjRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
141 
151  virtual StatusCode updateObj(IOpaqueAddress* pAddress, DataObject* refpObject) = 0;
152 
163  virtual StatusCode updateObjRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
164 
172  virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress) = 0;
173 
180  virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
181 
188  virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
189 
197  virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
198 
200  enum Status {
202  INVALID_ADDRESS = IInterface::LAST_ERROR+1,
212  ICONVERSIONSVC_LAST_ERROR
213  };
214 };
215 
216 #endif // GAUDIKERNEL_ICONVERTER_H
Small smart pointer class with automatic reference counting for IInterface.
Definition: IConverter.h:14
The data converters are responsible to translate data from one representation into another...
Definition: IConverter.h:57
IAddressCreator interface definition.
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:14
Error retrieving source data from source store.
Definition: IConverter.h:210
Data provider interface definition.
Object to be converted is invalid.
Definition: IConverter.h:204
Invalid storage type.
Definition: IConverter.h:208
Status
Status code.
Definition: IConverter.h:200
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Definition of the basic interface.
Definition: IInterface.h:234
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8
No more memory available.
Definition: IConverter.h:206
Opaque address interface definition.
#define GAUDI_API
Definition: Kernel.h:107
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30