00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef DBCNV_DBSVC_DBUSERCONVERTER_H
00016 #define DBCNV_DBSVC_DBUSERCONVERTER_H
00017
00018
00019 #include "GaudiKernel/IConverter.h"
00020 #include "DbUserCnvFactory.h"
00021
00022
00023 class ISvcLocator;
00024 class IOODataBase;
00025 class IDataProviderSvc;
00026
00050 class DbUserConverter : virtual public IConverter {
00051 public:
00052 typedef DataObject* (*Creator)();
00053
00056
00057 virtual StatusCode queryInterface(const IID& riid, void** ppvInterface);
00058
00060 virtual unsigned long addRef();
00061
00063 virtual unsigned long release();
00065
00068
00069 virtual StatusCode initialize();
00070
00072 virtual StatusCode finalize();
00073
00075 virtual StatusCode setDataProvider(IDataProviderSvc* svc);
00076
00078 virtual IDataProviderSvc* dataProvider();
00079
00081 virtual const CLID& objType() const;
00082
00084 virtual unsigned char repSvcType() const;
00085
00087 virtual StatusCode createObj(IOpaqueAddress* pAddress,DataObject*& refpObject);
00088
00090 virtual StatusCode fillObjRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00091
00093 virtual StatusCode updateObj(IOpaqueAddress* pAddress, DataObject* refpObject);
00094
00096 virtual StatusCode updateObjRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00097
00099 virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress);
00100
00102 virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress,DataObject* pObject);
00103
00105 virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject);
00106
00108 virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00110
00113
00114 DbUserConverter( Creator creator, const CLID& class_type, IOODataBase* db, ISvcLocator* svc);
00115 protected:
00117 virtual ~DbUserConverter();
00119
00120 private:
00122 IConverter* m_implementation;
00124 ISvcLocator* m_svcLocator;
00125 };
00126 #endif // DBCNV_DBSVC_DBUSERCONVERTER_H