16 #ifndef __IPSDKBASEPROCESSING_RULENODESCOLLSIZE_H__ 17 #define __IPSDKBASEPROCESSING_RULENODESCOLLSIZE_H__ 19 #include <IPSDKBaseProcessing/Rule/Attribute/DataItem/NodeColl/Size/BaseTNodesCollSizeRule.h> 27 template <
typename AttributeType1,
28 typename NodeCollType1,
29 typename AttributeType2,
30 typename NodeCollType2,
31 eValueComparisonRuleType::domain ValueComparisonRuleType>
37 typedef typename boost::enable_if<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
38 boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
42 typedef typename boost::enable_if<typename boost::is_same<boost::mpl::int_<NodeCollType1::g_itemType>,
43 boost::mpl::int_<eDataItemType::eDIT_NodeColl> >::type,
47 typedef typename boost::enable_if<typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
48 boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
65 void init(
const boost::weak_ptr<const AttributeType1>& pAttribute1,
66 const boost::weak_ptr<const AttributeType2>& pAttribute2);
90 template <
typename AttributeType1,
typename NodeCollType1,
typename AttributeType2,
typename NodeCollType2, eValueComparisonRuleType::domain ValueComparisonRuleType>
93 const boost::weak_ptr<const AttributeType2>& pAttribute2)
99 template <
typename AttributeType1,
typename NodeCollType1,
typename AttributeType2,
typename NodeCollType2, eValueComparisonRuleType::domain ValueComparisonRuleType>
103 return AttributeType1::getObjectNameStr() +
"::" +
104 DataItemType1::template getNodeNameStr<NodeCollType1>() +
"{size}";
107 template <
typename AttributeType1,
typename NodeCollType1,
typename AttributeType2,
typename NodeCollType2, eValueComparisonRuleType::domain ValueComparisonRuleType>
111 return AttributeType2::getObjectNameStr() +
"::" +
112 DataItemType2::template getNodeNameStr<NodeCollType2>() +
"{size}";
115 template <
typename AttributeType1,
typename NodeCollType1,
typename AttributeType2,
typename NodeCollType2, eValueComparisonRuleType::domain ValueComparisonRuleType>
120 const AttributeType1& derivedAttribute =
static_cast<const AttributeType1&
>(this->getAttribute1());
122 return derivedAttribute.getNode().template getSize<NodeCollType1>();
125 template <
typename AttributeType1,
typename NodeCollType1,
typename AttributeType2,
typename NodeCollType2, eValueComparisonRuleType::domain ValueComparisonRuleType>
130 const AttributeType2& derivedAttribute =
static_cast<const AttributeType2&
>(this->getAttribute2());
132 return derivedAttribute.getNode().template getSize<NodeCollType2>();
141 #endif // __IPSDKBASEPROCESSING_RULENODESCOLLSIZE_H__ std::string getAttributeName2() const
method allowing to retrieve second attribute name into derived class
Definition: RuleNodesCollSize.h:109
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::enable_if< typename boost::is_same< boost::mpl::int_< AttributeType1::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename AttributeType1::ValueType >::type DataItemType1
retrieve first attribute type
Definition: RuleNodesCollSize.h:39
void init(const boost::weak_ptr< const AttributeType1 > &pAttribute1, const boost::weak_ptr< const AttributeType2 > &pAttribute2)
initialization of object
Definition: RuleNodesCollSize.h:92
void initBase()
base class initialization method
std::string getAttributeName1() const
method allowing to retrieve first attribute name into derived class
Definition: RuleNodesCollSize.h:101
Base template class for rules on size of node collections of data item attributes.
Definition: BaseTNodesCollSizeRule.h:28
ipUInt32 getCollSize1() const
method allowing to retrieve first collection size into derived class
Definition: RuleNodesCollSize.h:117
boost::enable_if< typename boost::is_same< boost::mpl::int_< NodeCollType1::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_NodeColl > >::type, typename NodeCollType1::NodeType >::type NodeType1
Node type associated to first attribute.
Definition: RuleNodesCollSize.h:44
Concrete class for rules on size of node collections of data item attributes.
Definition: RuleNodesCollSize.h:32
ipUInt32 getCollSize2() const
method allowing to retrieve second collection size into derived class
Definition: RuleNodesCollSize.h:127
boost::enable_if< typename boost::is_same< boost::mpl::int_< AttributeType2::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename AttributeType2::ValueType >::type DataItemType2
retrieve second attribute type
Definition: RuleNodesCollSize.h:49
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53