$treeview $search $mathjax
StdAir Logo  1.00.1
$projectbrief
$projectbrief
$searchbox

stdair/service/FacSupervisor.hpp

Go to the documentation of this file.
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