IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseTLeafPropertyRule.h
1 // BaseTLeafPropertyRule.h:
3 // ------------------------
4 //
15 
16 #ifndef __IPSDKBASEPROCESSING_BASETLEAFPROPERTYRULE_H__
17 #define __IPSDKBASEPROCESSING_BASETLEAFPROPERTYRULE_H__
18 
19 #include <IPSDKBaseProcessing/Rule/Attribute/DataItem/Leaf/LeafProperty/BaseLeafPropertyRule.h>
20 
21 namespace ipsdk {
22 namespace processor {
23 
26 
27 template <typename T, eValuePropertyRuleType::domain ValuePropertyRuleType>
29 {
30 // predefined public types
31 public:
33  typedef T ValueType;
34 
36  static const eValuePropertyRuleType::domain g_valuePropertyRuleType = ValuePropertyRuleType;
37 
38 public:
42  virtual ~BaseTLeafPropertyRule() = 0;
44 
45 // methods
46 public:
48  inline eValuePropertyRuleType getValuePropertyRuleType() const;
49 
50 protected:
52  virtual std::string getAttributeName() const = 0;
53 
55  virtual const T& getAttributeValue() const = 0;
56 
57 private:
59  bool testRule() const;
60 
62  std::string createRuleFormalString() const;
63 
65  std::string createRuleEvaluatedString(const ipUInt32 increment) const;
66 
67 // attributes
68 protected:
69 
70 };
71 
74 
75 template <typename T, eValuePropertyRuleType::domain ValuePropertyRuleType>
78 {
79  return g_valuePropertyRuleType;
80 }
81 
84 
85 } // end of namespace processor
86 } // end of namespace ipsdk
87 
88 #endif // __IPSDKBASEPROCESSING_BASETLEAFPROPERTYRULE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
eValuePropertyRuleType getValuePropertyRuleType() const
retrieve value property rule operation type
Definition: BaseTLeafPropertyRule.h:77
Base template class for rule allowing to check properties of leafs of data item attributes.
Definition: BaseTLeafPropertyRule.h:28
Base class for rule allowing to check properties of leafs of data item attributes.
Definition: BaseLeafPropertyRule.h:27
T ValueType
underlying type associated to attribute
Definition: BaseTLeafPropertyRule.h:33
eValuePropertyRuleType
enumerate describing value property rule operation type
Definition: RuleTypes.h:78
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53