CycleDescriptor.h

Go to the documentation of this file.
00001 // Copyright CERN 2012 - Developed in collaboration with GSI
00002 
00003 #ifndef CYCLE_DESCRIPTOR_H_
00004 #define CYCLE_DESCRIPTOR_H_
00005 
00006 #include <fesa-core/Utilities/Mutex.h>
00007 
00008 #include <vector>
00009 #include <string>
00010 #include <map>
00011 
00012 namespace fesa
00013 {
00014 
00020 class CycleDescriptor
00021 {
00022   public:
00023 
00027     virtual ~CycleDescriptor();
00028 
00034     virtual const std::vector<int32_t>& getCycleIdsCol();
00035 
00041     virtual const std::map<std::string, int32_t>& getCycleSelectorCol();
00042 
00050     virtual int32_t getCycleSelectorId(const std::string& cycleSelectorName);
00051 
00059     virtual const std::string getCycleSelectorName(int32_t cycleSelectorID);
00060 
00067     virtual bool isValidCycleSelector(const std::string& cycleSelectorName);
00068 
00073     const std::string& getTimingDomain();
00074 
00078     const std::string& getTimingCriterion();
00079 
00083     const std::string& getName();
00084 
00085   protected:
00086 
00092     CycleDescriptor(const std::string& timingDomain, const std::string& multiplexingCriterion);
00093 
00098     virtual void addSelector(const std::string& cycleSelectorName);
00099 
00105     virtual void renameSelector(const std::string& oldCycleSelectorName,const std::string& newCycleSelectorName);
00106 
00110     std::string timingDomain_;
00111 
00115     std::string timingCriterion_;
00116 
00120     std::string name_;
00121 
00122   private:
00123 
00127     std::vector<int32_t> cycleIdsCol_;
00128 
00132     std::map<std::string, int32_t> cycleSelectorCol_;
00133 
00137     Mutex cycleSelectorColMutex_;
00138 
00139 };
00140 
00141 } // fesa
00142 
00143 #endif // CYCLE_DESCRIPTOR_H_

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1