00001 #ifndef IROOTIOSVC_H 00002 #define IROOTIOSVC_H 00003 00004 #include "GaudiKernel/IInterface.h" 00005 00006 #include <string> 00007 #include <map> 00008 00009 class RootOutputStream; 00010 class RootInputStream; 00011 class DataObject; 00012 class RootInputAddress; 00013 class RootOutputAddress; 00014 class IDataProviderSvc; 00015 class IDataManagerSvc; 00016 00017 static const InterfaceID IID_IRootIOSvc("IRootIOSvc",0,0); 00018 00019 class IRootIOSvc : virtual public IInterface 00020 { 00021 public: 00022 00023 static const InterfaceID& interfaceID() { return IID_IRootIOSvc; } 00024 00027 virtual StatusCode createAddress(DataObject* obj, RootOutputAddress*& roa) = 0; 00028 00030 virtual RootOutputStream* outputStream(const RootOutputAddress& roa) = 0; 00031 00033 virtual RootInputStream* inputStream(const RootInputAddress& ria) = 0; 00034 00036 typedef std::map<std::string,RootInputStream*> InputStreamMap; 00037 virtual InputStreamMap& inputStreams() = 0; 00038 00040 virtual void associateOutput(const char* filename, const char* streamname) = 0; 00041 00043 typedef std::map<std::string,std::string> FileMap; 00044 virtual FileMap fileMap() = 0; 00045 00047 virtual bool isReadoutForced() const = 0; 00048 00050 virtual IDataProviderSvc* dataSvc() = 0; 00052 virtual IDataManagerSvc* dataMgrSvc() = 0; 00053 00054 }; 00055 00056 00057 #endif // IROOTIOSVC_H