PaCO++  0.05
FabriqueManager.h
Go to the documentation of this file.
00001 #ifndef PACO_FABRIQUE_MANAGER_IS_DEFINED
00002 #define PACO_FABRIQUE_MANAGER_IS_DEFINED
00003 
00004 #include "thread/paco_thread.h"
00005 #include "com/paco_com.h"
00006 #include "DistributionLibrairie.h"
00007 #include "CommunicationScheduling.h"
00008 
00009 #include <string>
00010 #include <map>
00011 #include <vector>
00012 
00013 // Concrete fabrique class
00014 class paco_fabrique_manager
00015 {
00016  private:
00017   paco_fabrique_manager_thread*        pfthread;
00018   paco_fabrique_manager_com*           pfcom;
00019   paco_fabrique_manager_distribution*  pfdistribution;
00020   paco_fabrique_manager_comScheduling* pfcomScheduling;
00021 
00022  public:
00023   paco_fabrique_manager();
00024   ~paco_fabrique_manager();   
00025 
00026   // Thread
00027   void register_thread(const ::std::string& fabname, paco_fabrique_thread* pf);
00028   paco_fabrique_thread* get_thread(const ::std::string& fabname);
00029 
00030   // Com
00031   void register_com(const ::std::string& fabname, paco_fabrique_com* pf);
00032   paco_fabrique_com* get_com(const ::std::string& fabname);
00033 
00034   // Distribution
00035   void register_distribution(const ::std::string& fabname, paco_fabrique_distribution* pf);
00036   paco_fabrique_distribution* get_distribution(const ::std::string& fabname);
00037 
00038   // Com
00039   void register_comScheduling(const ::std::string& fabname, paco_fabrique_comScheduling* pf);
00040   paco_fabrique_comScheduling* get_comScheduling(const ::std::string& fabname);
00041 
00042 };
00043 
00044 #endif