IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseTLeafCollPropertyRule.h
1 // BaseTLeafCollPropertyRule.h:
3 // ----------------------------
4 //
15 
16 #ifndef __IPSDKBASEPROCESSING_BASETLEAFCOLLPROPERTYRULE_H__
17 #define __IPSDKBASEPROCESSING_BASETLEAFCOLLPROPERTYRULE_H__
18 
19 #include <IPSDKBaseProcessing/Rule/Attribute/DataItem/LeafColl/LeafCollProperty/BaseLeafCollPropertyRule.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  typedef std::vector<T> LeafCollType;
37 
39  static const eValuePropertyRuleType::domain g_valuePropertyRuleType = ValuePropertyRuleType;
40 
41 public:
45  virtual ~BaseTLeafCollPropertyRule() = 0;
47 
48 // methods
49 public:
51  inline eValuePropertyRuleType getValuePropertyRuleType() const;
52 
53 protected:
55  virtual std::string getAttributeName() const = 0;
56 
58  virtual const LeafCollType& getAttributeLeafColl() const = 0;
59 
60 private:
62  bool testRule() const;
63 
65  std::string createRuleFormalString() const;
66 
68  std::string createRuleEvaluatedString(const ipUInt32 increment) const;
69 
70 // attributes
71 protected:
72 
73 };
74 
77 
78 template <typename T, eValuePropertyRuleType::domain ValuePropertyRuleType>
81 {
82  return g_valuePropertyRuleType;
83 }
84 
87 
88 } // end of namespace processor
89 } // end of namespace ipsdk
90 
91 #endif // __IPSDKBASEPROCESSING_BASETLEAFCOLLPROPERTYRULE_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: BaseTLeafCollPropertyRule.h:80
Base class for rule allowing to check properties of leaf collections of data item attributes...
Definition: BaseLeafCollPropertyRule.h:27
T ValueType
underlying type associated to attribute
Definition: BaseTLeafCollPropertyRule.h:33
std::vector< T > LeafCollType
underlying collection type associated to attribute
Definition: BaseTLeafCollPropertyRule.h:36
Base template class for rule allowing to check properties of leaf collections of data item attributes...
Definition: BaseTLeafCollPropertyRule.h:28
eValuePropertyRuleType
enumerate describing value property rule operation type
Definition: RuleTypes.h:78
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53