$treeview $search $mathjax
00001 #ifndef __STDAIR_SVC_FACSUPERVISOR_HPP 00002 #define __STDAIR_SVC_FACSUPERVISOR_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // STL 00008 #include <iosfwd> 00009 #include <list> 00010 00011 namespace stdair { 00012 00014 class FacAbstract; 00015 class FacServiceAbstract; 00016 00020 class FacSupervisor { 00021 public: 00025 typedef std::list<FacAbstract*> PersistentBomFactoryPool_T; 00026 typedef std::list<FacAbstract*> CloneBomFactoryPool_T; 00027 typedef std::list<FacServiceAbstract*> ServiceFactoryPool_T; 00028 00035 static FacSupervisor& instance(); 00036 00044 void registerPersistentBomFactory (FacAbstract*); 00045 00053 void registerCloneBomFactory (FacAbstract*); 00054 00062 void registerServiceFactory (FacServiceAbstract*); 00063 00070 void cleanPersistentBomLayer(); 00071 00078 void cleanCloneBomLayer(); 00079 00086 void cleanServiceLayer(); 00087 00091 static void cleanLoggerService(); 00092 00096 static void cleanDBSessionManager(); 00097 00103 static void cleanAll(); 00104 00111 ~FacSupervisor(); 00112 00113 00114 protected: 00120 FacSupervisor() {} 00121 FacSupervisor (const FacSupervisor&) {} 00122 00123 private: 00127 static FacSupervisor* _instance; 00128 00132 PersistentBomFactoryPool_T _persistentBomPool; 00133 00137 CloneBomFactoryPool_T _cloneBomPool; 00138 00142 ServiceFactoryPool_T _svcPool; 00143 00144 }; 00145 } 00146 #endif // __STDAIR_SVC_FACSUPERVISOR_HPP