00001
00002 #ifndef GAUDIKERNEL_CONVERTER_H
00003 #define GAUDIKERNEL_CONVERTER_H
00004
00005
00006 #include "GaudiKernel/IConverter.h"
00007
00008
00009 class ISvcLocator;
00010 class IMessageSvc;
00011 class IDataDirectory;
00012 class IDataProviderSvc;
00013
00022 class Converter : virtual public IConverter {
00023
00024 public:
00025
00027 virtual StatusCode queryInterface(const IID& riid, void** ppvInterface);
00028
00030 virtual unsigned long addRef();
00031
00033 virtual unsigned long release();
00034
00036 virtual StatusCode initialize();
00037
00039 virtual StatusCode finalize();
00040
00042 virtual StatusCode setDataProvider(IDataProviderSvc* svc);
00043
00045 virtual IDataProviderSvc* dataProvider();
00046
00048 virtual const CLID& objType() const;
00049
00051 virtual unsigned char repSvcType() const;
00052
00054 virtual StatusCode createObj(IOpaqueAddress* pAddress,DataObject*& refpObject);
00055
00057 virtual StatusCode fillObjRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00058
00060 virtual StatusCode updateObj(IOpaqueAddress* pAddress, DataObject* refpObject);
00061
00063 virtual StatusCode updateObjRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00064
00066 virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress);
00067
00069 virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress,DataObject* pObject);
00070
00072 virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject);
00073
00075 virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00076
00078 Converter(unsigned char storage_type, const CLID& class_type, ISvcLocator* svc);
00079
00080 protected:
00081
00083 virtual ~Converter();
00084
00086 ISvcLocator* serviceLocator();
00087
00089 IMessageSvc* msgSvc();
00090
00091 IMessageSvc* messageService();
00092
00093 private:
00094
00096 unsigned long m_refCount;
00098 unsigned char m_storageType;
00100 const CLID m_classType;
00102 IDataProviderSvc* m_dataProvider;
00104 ISvcLocator* m_svcLocator;
00106 IMessageSvc* m_messageSvc;
00107 };
00108
00109
00110 #endif // GAUDIKERNEL_CONVERTER_H