$treeview $search $mathjax
SimCRS Logo  1.00.0
$projectbrief
$projectbrief
$searchbox

FacSupervisor.hpp

Go to the documentation of this file.
00001 #ifndef __SIMCRS_FAC_FACSUPERVISOR_HPP
00002 #define __SIMCRS_FAC_FACSUPERVISOR_HPP
00003 
00004 // //////////////////////////////////////////////////////////////////////
00005 // Import section
00006 // //////////////////////////////////////////////////////////////////////
00007 // STL
00008 #include <vector>
00009 
00010 namespace SIMCRS {
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 // __SIMCRS_FAC_FACSUPERVISOR_HPP