Go to the documentation of this file.00001
00002 #ifndef GAUDIKERNEL_ICONVERTER_H
00003 #define GAUDIKERNEL_ICONVERTER_H
00004
00005
00006 #include "GaudiKernel/IInterface.h"
00007 #include "GaudiKernel/ClassID.h"
00008
00009
00010 class IDataProviderSvc;
00011 class IAddressCreator;
00012 class IConversionSvc;
00013 class IOpaqueAddress;
00014 class DataObject;
00015 template<class T> class SmartIF;
00016
00058 class GAUDI_API IConverter: virtual public IInterface {
00059 public:
00061 DeclareInterfaceID(IConverter,3,0);
00062
00067 virtual StatusCode initialize() = 0;
00068
00073 virtual StatusCode finalize() = 0;
00074
00078 virtual const CLID& objType() const = 0;
00079
00084 virtual long repSvcType() const = 0;
00085
00090 virtual StatusCode setDataProvider(IDataProviderSvc* pService) = 0;
00091
00095 virtual SmartIF<IDataProviderSvc>& dataProvider() const = 0;
00096
00101 virtual StatusCode setConversionSvc(IConversionSvc* pService) = 0;
00102
00106 virtual SmartIF<IConversionSvc>& conversionSvc() const = 0;
00107
00112 virtual StatusCode setAddressCreator(IAddressCreator* creator) = 0;
00113
00117 virtual SmartIF<IAddressCreator>& addressCreator() const = 0;
00118
00130 virtual StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject) = 0;
00131
00141 virtual StatusCode fillObjRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00142
00152 virtual StatusCode updateObj(IOpaqueAddress* pAddress, DataObject* refpObject) = 0;
00153
00164 virtual StatusCode updateObjRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00165
00173 virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress) = 0;
00174
00181 virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00182
00189 virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00190
00198 virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00199
00201 enum Status {
00203 INVALID_ADDRESS = IInterface::LAST_ERROR+1,
00205 INVALID_OBJECT,
00207 NO_MEMORY,
00209 BAD_STORAGE_TYPE,
00211 NO_SOURCE_OBJECT,
00213 ICONVERSIONSVC_LAST_ERROR
00214 };
00215 };
00216
00217 #endif // GAUDIKERNEL_ICONVERTER_H