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

In This Package:

RootIOCnvSvc.h

Go to the documentation of this file.
00001 
00018 #ifndef ROOTIOCNVSVC_H
00019 #define ROOTIOCNVSVC_H
00020 
00021 #include "GaudiKernel/ConversionSvc.h"
00022 #include "GaudiKernel/IPersistencySvc.h"
00023 
00024 #include "RootIOSvc/IRootIOSvc.h"
00025 #include "RootIOSvc/RootInputStream.h"
00026 #include "RootIOSvc/RootOutputStream.h"
00027 #include "RootIOSvc/RootIOAddress.h"
00028 
00029 #include <string>
00030 #include <map>
00031 
00032 class IDataManagerSvc;
00033 
00034 class RootIOCnvSvc : public ConversionSvc,
00035                      virtual public IRootIOSvc
00036 {
00037 public:
00038     RootIOCnvSvc(const std::string& name, ISvcLocator* svc);
00039     virtual ~RootIOCnvSvc();
00040 
00041     // Service interface:
00042     virtual StatusCode initialize();
00043     virtual StatusCode reinitialize();
00044     virtual StatusCode finalize();
00045     virtual StatusCode queryInterface(const InterfaceID& riid, void** ppint);
00046 
00047     // ConversionSvc interface:
00048     
00049 #if 0
00050     virtual StatusCode createObj(IOpaqueAddress* addr, DataObject*& obj);
00051     virtual StatusCode fillObjRefs(IOpaqueAddress* addr, DataObject* obj);
00052 #endif
00053 
00056     virtual StatusCode createAddress(long svc_type,
00057                                      const CLID& clid,
00058                                      const std::string* par, 
00059                                      const unsigned long* ip,
00060                                      IOpaqueAddress*& newAddr);
00061 
00063     virtual IDataProviderSvc* dataSvc() { return m_dataSvc; }
00064 
00066     virtual IDataManagerSvc* dataMgrSvc() { return m_dataMgr; }
00067 
00068     // IRootIOSvc interface:
00069 
00072     virtual StatusCode createAddress(DataObject* obj, 
00073                                      RootOutputAddress*& newAddr);
00074 
00078     RootOutputStream* outputStream(const RootOutputAddress& roa);
00079 
00081     const std::string& outputFilename(const std::string& tespath);
00082 
00084     void associateOutput(const char* filename, const char* streamname);
00085 
00086     FileMap fileMap();
00087 
00091     RootInputStream* inputStream(const RootInputAddress& ria);
00092 
00094     InputStreamMap& inputStreams() { return m_inputStreamMap; }
00095 
00099     std::vector<std::string> inputFilenames(const std::string& tespath);
00100 
00102     bool isReadoutForced() const;
00103 
00104 protected:
00105 
00106     StatusCode doInitialize();
00107 
00112     std::map<std::string,std::string> m_outputFileMap;
00113     std::map<std::string,RootOutputStream*> m_outputStreamMap;
00114 
00117     std::string m_defaultOutputFilename;
00118 
00125     std::map<std::string,std::vector<std::string> > m_inputFileMap;
00126     InputStreamMap m_inputStreamMap;
00127     void initializeInputStream(const std::string& path, 
00128                                const std::string& filename);
00129     void initializeInputStream(const std::string& path, 
00130                                const std::vector<std::string>& filename_list);
00131 
00134     std::vector<std::string> m_defaultInputFilenames;
00135 
00137     std::string m_dataSvcName;
00138     IDataProviderSvc* m_dataSvc;
00139     IDataManagerSvc* m_dataMgr;
00140  private:
00141 
00145     bool m_forceReadout;
00146 };
00147 
00148 #endif  // ROOTIOCNVSVC_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