The Gaudi Framework  v29r0 (ff2e7097)
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 {
60 public:
63 
68  virtual StatusCode initialize() = 0;
69 
74  virtual StatusCode finalize() = 0;
75 
79  virtual const CLID& objType() const = 0;
80 
85  virtual long repSvcType() const = 0;
86 
91  virtual StatusCode setDataProvider( IDataProviderSvc* pService ) = 0;
92 
96  virtual SmartIF<IDataProviderSvc>& dataProvider() const = 0;
97 
102  virtual StatusCode setConversionSvc( IConversionSvc* pService ) = 0;
103 
107  virtual SmartIF<IConversionSvc>& conversionSvc() const = 0;
108 
113  virtual StatusCode setAddressCreator( IAddressCreator* creator ) = 0;
114 
118  virtual SmartIF<IAddressCreator>& addressCreator() const = 0;
119 
131  virtual StatusCode createObj( IOpaqueAddress* pAddress, DataObject*& refpObject ) = 0;
132 
142  virtual StatusCode fillObjRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
143 
153  virtual StatusCode updateObj( IOpaqueAddress* pAddress, DataObject* refpObject ) = 0;
154 
165  virtual StatusCode updateObjRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
166 
174  virtual StatusCode createRep( DataObject* pObject, IOpaqueAddress*& refpAddress ) = 0;
175 
182  virtual StatusCode fillRepRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
183 
190  virtual StatusCode updateRep( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
191 
199  virtual StatusCode updateRepRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
200 
202  enum Status {
204  INVALID_ADDRESS = IInterface::LAST_ERROR + 1,
214  ICONVERSIONSVC_LAST_ERROR
215  };
216 };
217 
218 #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.
Error retrieving source data from source store.
Definition: IConverter.h:212
Data provider interface definition.
Object to be converted is invalid.
Definition: IConverter.h:206
Invalid storage type.
Definition: IConverter.h:210
Status
Status code.
Definition: IConverter.h:202
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
#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:277
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8
No more memory available.
Definition: IConverter.h:208
Opaque address interface definition.
#define GAUDI_API
Definition: Kernel.h:110
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:29