/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 00010 #ifndef ROOTIOBASECNV_H 00011 #define ROOTIOBASECNV_H 00012 00013 00014 #include "RootIOSvc/IRootIOSvc.h" 00015 #include "RootIOSvc/IRootIOCnv.h" 00016 00017 #include "RootIOSvc/RootIOBaseObject.h" 00018 00019 #include "GaudiKernel/Converter.h" 00020 00021 extern const long int ROOT_StorageType; 00022 00023 class RootInputAddress; 00024 class RootOutputAddress; 00025 00026 class RootIOBaseCnv : public Converter, 00027 virtual public IRootIOCnv 00028 { 00029 public: 00030 00031 RootIOBaseCnv(const CLID& clid, ISvcLocator* svc); 00032 virtual ~RootIOBaseCnv(); 00033 00035 static unsigned char storageType() { 00036 return ROOT_StorageType; 00037 } 00038 00040 virtual long repSvcType() const { 00041 return ROOT_StorageType; 00042 } 00043 00044 00046 virtual StatusCode initialize(); 00047 virtual StatusCode finalize(); 00048 00051 virtual StatusCode createObj(IOpaqueAddress* addr, 00052 DataObject*& dat ); 00053 00056 virtual StatusCode createRep(DataObject* pObject, 00057 IOpaqueAddress*& refpAddress); 00058 00061 virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress, 00062 DataObject* pObject); 00063 00066 virtual StatusCode fillObjRefs(IOpaqueAddress* pAddress, 00067 DataObject* pObject); 00068 00071 virtual StatusCode TranObjectToPerObject(DataObject& dat, 00072 const RootOutputAddress& roa) = 0; 00073 00076 virtual StatusCode PerObjectToTranObject(DataObject*& dat) = 0; 00077 00080 int commit(const RootOutputAddress& roa); 00081 00082 // Subclass must implement: 00083 // RootInputStream* makeInputStream(RootInputAddress* ria); 00084 // RootOutputStream* makeOutputStream(RootOutputAddress* roa); 00085 00086 // Implemented by RootIOTypedCnv 00087 virtual const RootIOBaseObject* getBaseInputObject() = 0; 00088 virtual const RootIOBaseObject* getBaseOutputObject() = 0; 00089 00091 RootIOBaseCnv* otherConverter(int clID); 00092 00093 protected: 00094 00096 IRootIOSvc* m_rioSvc; 00097 00099 IConversionSvc* m_cnvSvc; 00100 00103 RootInputStream* m_ris; 00104 00105 }; 00106 00107 #endif // ROOTIOBASECNV_H