RMOL Logo Get Revenue Management Optimisation Library at SourceForge.net. Fast, secure and Free Open Source software downloads

FacSupervisor.hpp

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

Generated on Sat Sep 26 13:13:51 2009 for RMOL by Doxygen 1.6.1