$treeview $search $mathjax
00001 #ifndef __AIRINV_FAC_FACSUPERVISOR_HPP 00002 #define __AIRINV_FAC_FACSUPERVISOR_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // STL 00008 #include <vector> 00009 00010 namespace AIRINV { 00011 00012 // Forward declarations 00013 class FacBomAbstract; 00014 class FacServiceAbstract; 00015 00017 class FacSupervisor { 00018 public: 00019 00021 typedef std::vector<FacBomAbstract*> BomFactoryPool_T; 00022 typedef std::vector<FacServiceAbstract*> ServiceFactoryPool_T; 00023 00027 static FacSupervisor& instance(); 00028 00033 void registerBomFactory (FacBomAbstract*); 00034 00039 void registerServiceFactory (FacServiceAbstract*); 00040 00044 void cleanBomLayer(); 00045 00049 void cleanServiceLayer(); 00050 00053 static void cleanFactory (); 00054 00058 ~FacSupervisor(); 00059 00060 00061 protected: 00065 FacSupervisor (); 00066 FacSupervisor (const FacSupervisor&) {} 00067 00068 00069 private: 00071 static FacSupervisor* _instance; 00072 00074 BomFactoryPool_T _bomPool; 00075 00077 ServiceFactoryPool_T _svcPool; 00078 }; 00079 } 00080 #endif // __AIRINV_FAC_FACSUPERVISOR_HPP