|
Gaudi Framework, version v23r4 |
| Home | Generated: Mon Sep 17 2012 |
00001 00002 // IoComponentMgr.h 00003 // Header file for class IoComponentMgr 00004 // Author: S.Binet<binet@cern.ch> 00006 #ifndef GAUDIMP_IOCOMPONENTMGR_H 00007 #define GAUDIMP_IOCOMPONENTMGR_H 1 00008 00009 // Python includes 00010 #include <Python.h> 00011 00012 // STL includes 00013 #include <string> 00014 #include <map> 00015 #include <list> 00016 00017 // FrameWork includes 00018 #include "GaudiKernel/Service.h" 00019 00020 // GaudiKernel 00021 #include "GaudiKernel/IIoComponent.h" 00022 #include "GaudiKernel/IIoComponentMgr.h" 00023 00024 // Forward declaration 00025 class ISvcLocator; 00026 template <class TYPE> class SvcFactory; 00027 00028 00029 class IoComponentMgr: public extends1<Service, IIoComponentMgr> { 00030 00031 friend class SvcFactory<IoComponentMgr>; 00032 00034 // Public methods: 00036 public: 00037 00038 // Copy constructor: 00039 00041 IoComponentMgr( const std::string& name, ISvcLocator* pSvcLocator ); 00042 00044 virtual ~IoComponentMgr(); 00045 00046 // Assignment operator: 00047 //IoComponentMgr &operator=(const IoComponentMgr &alg); 00048 00050 00051 virtual StatusCode initialize(); 00052 virtual StatusCode finalize(); 00053 00055 00057 // Const methods: 00059 00062 virtual 00063 bool io_hasitem (IIoComponent* iocomponent) const; 00064 00068 virtual 00069 bool io_contains (IIoComponent* iocomponent, 00070 const std::string& fname) const; 00071 00073 // Non-const methods: 00075 00082 virtual 00083 StatusCode io_register (IIoComponent* iocomponent); 00084 00091 virtual 00092 StatusCode io_register (IIoComponent* iocomponent, 00093 IIoComponentMgr::IoMode::Type iomode, 00094 const std::string& fname); 00095 00099 virtual 00100 StatusCode io_retrieve (IIoComponent* iocomponent, 00101 std::string& fname); 00102 00107 virtual 00108 StatusCode io_reinitialize (); 00109 00114 virtual 00115 StatusCode io_finalize (); 00116 00118 // Private data: 00120 private: 00121 00123 IoComponentMgr(); 00124 00125 mutable MsgStream m_log; 00126 00127 typedef std::map<std::string, IIoComponent*> IoRegistry_t; 00129 IoRegistry_t m_ioregistry; 00130 00131 typedef std::list<IIoComponent*> IoStack_t; 00133 IoStack_t m_iostack; 00134 00138 PyObject *m_dict; 00139 00141 std::string m_dict_location; 00142 00143 }; 00144 00145 00146 #endif //> !GAUDIMP_IOCOMPONENTMGR_H