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 IOpaqueAddress;
00013 class ISvcLocator;
00014 class DataObject;
00015
00016
00017 static const InterfaceID IID_IConverter(3, 1 , 0);
00018
00060 class IConverter : virtual public IInterface {
00061 public:
00063 static const InterfaceID& interfaceID() { return IID_IConverter; }
00064
00069 virtual StatusCode initialize() = 0;
00070
00075 virtual StatusCode finalize() = 0;
00076
00080 virtual const CLID& objType() const = 0;
00081
00086 virtual unsigned char repSvcType() const = 0;
00087
00092 virtual StatusCode setDataProvider(IDataProviderSvc* pService) = 0;
00093
00097 virtual IDataProviderSvc* dataProvider() = 0;
00098
00110 virtual StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject) = 0;
00111
00121 virtual StatusCode fillObjRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00122
00132 virtual StatusCode updateObj(IOpaqueAddress* pAddress, DataObject* refpObject) = 0;
00133
00144 virtual StatusCode updateObjRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00145
00153 virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress) = 0;
00154
00161 virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00162
00169 virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00170
00178 virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject) = 0;
00179
00181 enum Status {
00183 SUCCESS = IInterface::SUCCESS,
00185 INVALID_ADDRESS = IInterface::LAST_ERROR+1,
00187 INVALID_OBJECT,
00189 NO_MEMORY,
00191 NO_SOURCE_OBJECT
00192 };
00193 };
00194
00195 #endif // GAUDIKERNEL_ICONVERTER_H