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
00011 class IDataProviderSvc;
00012 class IAddressCreator;
00013 class IConversionSvc;
00014 class IOpaqueAddress;
00015 class DataObject;
00016
00017
00018 static const InterfaceID IID_IConverter(3, 2 , 0);
00019
00061 class IConverter : virtual public IInterface {
00062 public:
00064 static const InterfaceID& interfaceID() { return IID_IConverter; }
00065
00070 virtual StatusCode initialize() = 0;
00071
00076 virtual StatusCode finalize() = 0;
00077
00081 virtual const CLID& objType() const = 0;
00082
00087 virtual long repSvcType() const = 0;
00088
00093 virtual StatusCode setDataProvider(IDataProviderSvc* pService) = 0;
00094
00098 virtual IDataProviderSvc* dataProvider() const = 0;
00099
00104 virtual StatusCode setConversionSvc(IConversionSvc* pService) = 0;
00105
00109 virtual IConversionSvc* conversionSvc() const = 0;
00110
00115 virtual StatusCode setAddressCreator(IAddressCreator* creator) = 0;
00116
00120 virtual IAddressCreator* addressCreator() const = 0;
00121
00133 virtual StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject) = 0;
00134
00144 virtual StatusCode fillObjRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00145
00155 virtual StatusCode updateObj(IOpaqueAddress* pAddress, DataObject* refpObject) = 0;
00156
00167 virtual StatusCode updateObjRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00168
00176 virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress) = 0;
00177
00184 virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00185
00192 virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00193
00201 virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00202
00204 enum Status {
00206 INVALID_ADDRESS = IInterface::LAST_ERROR+1,
00208 INVALID_OBJECT,
00210 NO_MEMORY,
00212 BAD_STORAGE_TYPE,
00214 NO_SOURCE_OBJECT,
00216 ICONVERSIONSVC_LAST_ERROR
00217 };
00218 };
00219
00220 #endif // GAUDIKERNEL_ICONVERTER_H