00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _BASECNV_H
00010 #define _BASECNV_H 1
00011
00012
00013 #include <vector>
00014 #include <string>
00015 #include "GaudiKernel/Converter.h"
00016 #include "IEventCnvSvc.h"
00017
00018
00019
00020
00021 class IEventCnvSvc;
00022 class IGlastDetSvc;
00023
00024
00025 extern unsigned const char SICB_StorageType;
00026
00032 class BaseCnv : public Converter {
00033 protected:
00035 IEventCnvSvc* m_CnvSvc;
00037 std::vector<IEventCnvSvc::Leaf> m_leaves;
00038
00039 IGlastDetSvc* m_detSvc;
00040
00041
00042 public:
00044 BaseCnv(const CLID& clid, ISvcLocator* svc);
00045
00047 virtual ~BaseCnv();
00048
00050 static const unsigned char storageType() {
00051 return SICB_StorageType;
00052 }
00054 virtual StatusCode initialize();
00055
00057 virtual StatusCode finalize();
00058
00060 void declareObject(const std::string& fullPath, const CLID& clid, const std::string& bank, long par=0);
00061
00063 virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress);
00064
00066 virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress,DataObject* pObject);
00067
00069 virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject);
00070
00072 virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject);
00073 };
00074
00075
00076 #endif // _BASECNV_H