16 #ifndef __IPSDKBASEPROCESSING_RULENODECOLLSIZE_H__ 17 #define __IPSDKBASEPROCESSING_RULENODECOLLSIZE_H__ 19 #include <IPSDKBaseProcessing/Rule/Attribute/DataItem/NodeColl/Size/BaseTNodeCollSizeRule.h> 27 template <
typename AttributeType,
28 typename NodeCollType,
29 eValueComparisonRuleType::domain ValueComparisonRuleType>
35 typedef typename boost::enable_if<typename boost::is_same<boost::mpl::int_<AttributeType::g_attributeType>,
36 boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
40 typedef typename boost::enable_if<typename boost::is_same<boost::mpl::int_<NodeCollType::g_itemType>,
41 boost::mpl::int_<eDataItemType::eDIT_NodeColl> >::type,
42 typename NodeCollType::NodeType>::type
NodeType;
56 void init(
const boost::weak_ptr<const AttributeType>& pAttribute,
75 template <
typename AttributeType,
typename NodeCollType, eValueComparisonRuleType::domain ValueComparisonRuleType>
84 template <
typename AttributeType,
typename NodeCollType, eValueComparisonRuleType::domain ValueComparisonRuleType>
88 return AttributeType::getObjectNameStr() +
"::" +
89 DataItemType::template getNodeNameStr<NodeCollType>() +
"{size}";
92 template <
typename AttributeType,
typename NodeCollType, eValueComparisonRuleType::domain ValueComparisonRuleType>
97 const AttributeType& derivedAttribute =
static_cast<const AttributeType&
>(this->getAttribute1());
99 return derivedAttribute.getNode().template getSize<NodeCollType>();
108 #endif // __IPSDKBASEPROCESSING_RULENODECOLLSIZE_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
ipUInt32 getCollSize() const
method allowing to retrieve collection size into derived class
Definition: RuleNodeCollSize.h:94
boost::enable_if< typename boost::is_same< boost::mpl::int_< AttributeType::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename AttributeType::ValueType >::type DataItemType
retrieve attribute type
Definition: RuleNodeCollSize.h:37
Concrete class for rules on size of node collections of data item attributes.
Definition: RuleNodeCollSize.h:30
void initBase()
base class initialization method
void init(const boost::weak_ptr< const AttributeType > &pAttribute, const ipUInt32 value)
initialization of object
Definition: RuleNodeCollSize.h:77
boost::enable_if< typename boost::is_same< boost::mpl::int_< NodeCollType::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_NodeColl > >::type, typename NodeCollType::NodeType >::type NodeType
Value type associated to leaf.
Definition: RuleNodeCollSize.h:42
Base template class for rules on size of node collections of data item attributes.
Definition: BaseTNodeCollSizeRule.h:28
std::string getAttributeName() const
method allowing to retrieve attribute name into derived class
Definition: RuleNodeCollSize.h:86
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53