| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

RootIOBaseCnv.h

Go to the documentation of this file.
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
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:18:19 2011 for RootIOSvc by doxygen 1.4.7