CrateStore.h

00001 
00002 #ifndef SCT_SCTAPIIPC_CRATESTORE_H
00003 #define SCT_SCTAPIIPC_CRATESTORE_H
00004 
00005 namespace Sct {
00006   class CrateStore;
00007 };
00008 
00009 #include "Sct_SctApi/SctApi.hh"
00010 #include "Sct/Addressing.h"
00011 #include <list>
00012 #include <map>
00013 #include "boost/thread.hpp"
00014 
00015 namespace Sct {
00016 
00017   class CrateStore {
00018 
00019   private:
00020     typedef Sct_SctApi::CrateIPC WorkerBase;
00021 
00022   public:
00023     typedef Sct_SctApi::CrateIPC_var Worker;
00024     typedef std::list<Worker> Workers;
00025     typedef std::list<Sct::UCID> UCIDList;
00026 
00027   public:
00028     void registerNewCrateController(Sct_SctApi::CrateIPC_ptr cc);
00029     Worker getCrate(const Sct::UCID &); 
00030     Worker getCrate(const Sct::Corba::UCID &);
00031     Worker getCrate(const Sct::URID &); //returns the crate containing URID
00032     Worker getCrate(const Sct::Corba::URID &); //returns the crate containing URID
00033     Workers & workers();
00034     unsigned int size() { return m_apis.size(); };
00035     UCIDList ucidList();
00036 
00037   private:
00038     boost::recursive_mutex m_apisMutex;
00039     Workers m_apis;
00040     typedef std::map<Sct::UCID, Workers::iterator> Map;
00041     Map m_mapUCIDToWorkersIterator;   
00042     
00043   };
00044 
00045 };
00046 
00047 #endif

Generated on Mon Feb 6 14:01:18 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6