00001 #ifndef __RMOL_FAC_FACSUPERVISOR_HPP 00002 #define __RMOL_FAC_FACSUPERVISOR_HPP 00003 00004 // ////////////////////////////////////////////////////////////////////// 00005 // Import section 00006 // ////////////////////////////////////////////////////////////////////// 00007 // STL 00008 #include <vector> 00009 00010 namespace RMOL { 00011 00012 // Forward declarations 00013 class FacBomAbstract; 00014 class FacServiceAbstract; 00015 class Logger; 00016 00018 class FacSupervisor { 00019 public: 00020 00022 typedef std::vector<FacBomAbstract*> BomFactoryPool_T; 00023 typedef std::vector<FacServiceAbstract*> ServiceFactoryPool_T; 00024 00028 static FacSupervisor& instance(); 00029 00034 void registerBomFactory (FacBomAbstract*); 00035 00040 void registerServiceFactory (FacServiceAbstract*); 00041 00050 void registerLoggerService (Logger*); 00051 00055 void cleanBomLayer(); 00056 00060 void cleanServiceLayer(); 00061 00063 void cleanLoggerService(); 00064 00067 static void cleanFactory (); 00068 00072 ~FacSupervisor(); 00073 00074 00075 protected: 00079 FacSupervisor () {} 00080 FacSupervisor (const FacSupervisor&) {} 00081 00082 00083 private: 00085 static FacSupervisor* _instance; 00086 00088 Logger* _logger; 00089 00091 BomFactoryPool_T _bomPool; 00092 00094 ServiceFactoryPool_T _svcPool; 00095 00096 }; 00097 } 00098 #endif // __RMOL_FAC_FACSUPERVISOR_HPP
Generated on Sat Jun 6 13:48:35 2009 for RMOL by Doxygen 1.5.7.1