00001 #ifndef PRESCALERULE_H 00002 #define PRESCALERULE_H 00003 00010 00011 #include "Rules.h" 00012 #include "RuleFactory.h" 00013 00014 namespace RuleParser{ 00015 00019 00020 00021 class PrescaleRule : public Rule 00022 { 00023 public: 00024 PrescaleRule(std::string n, unsigned int interval ) 00025 : Rule(n), m_interval(interval), m_cycle(0) {}; 00026 virtual ~PrescaleRule() {}; 00027 00028 virtual bool select(const Queriable*) 00029 { 00030 if( ( (m_cycle++)%m_interval ) ==0) return true; 00031 return false; 00032 }; 00033 00034 private: 00035 unsigned int m_interval; 00036 unsigned int m_cycle; 00037 }; 00038 00042 00043 00044 struct PrescaleRuleFactory : public RuleFactory 00045 { 00046 Rule* createRule(const ParameterDescription&, int, int, bool); 00047 }; 00048 00049 00050 } 00051 00052 #endif /* PRESCALERULE_H */ 00053