00001 //Copyright GSI 2012 00002 #ifndef GSICYCLEDESCRIPTOR_H_ 00003 #define GSICYCLEDESCRIPTOR_H_ 00004 00005 #include <string> 00006 #include <vector> 00007 #include <fesa-core/Synchronization/CycleDescriptor.h> 00008 #include <fesa-core/Diagnostic/FesaLogger.h> 00009 00010 extern "C" 00011 { 00012 #include <tim/TimLib.h> 00013 #include <tgm/tgm.h> 00014 } 00015 00016 namespace fesaGSI 00017 { 00018 00023 class GSICycleDescriptor: public fesa::CycleDescriptor 00024 { 00025 public: 00026 00032 GSICycleDescriptor(const std::string& machineName,const std::string& groupName); 00033 00037 virtual ~GSICycleDescriptor(); 00038 00043 bool isValidCycleSelector(const std::string& timingSelectorName); 00044 00050 const std::string getCycleSelectorName(int timingSelectorID); 00051 00057 int getCycleSelectorId(const std::string& timingSelectorName); 00058 00063 TgmMachine getTgmMachineId(); 00064 00069 int getTgmGroupId(); 00070 00071 protected: 00072 00076 void refreshData(); 00077 00081 std::vector<std::string> lineNamesCol_; 00082 00086 unsigned long tgmMachineID_; 00087 00091 unsigned int tgmGroup_; 00092 00096 TgmGroupDescriptor group_; 00097 00101 std::string tgmMachineName_; 00102 00106 std::string tgmGroupName_; 00107 00111 fesa::FesaLogger* log_; 00112 }; 00113 00114 inline TgmMachine GSICycleDescriptor::getTgmMachineId() 00115 { 00116 return ((TgmMachine) tgmMachineID_); 00117 } 00118 00119 }//end namespace 00120 00121 #endif /* GSITIMINGDESCRIPTOR_H_ */