IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
DataItemNodeColl.h
1 // DataItemNodeColl.h:
3 // -------------------
4 //
14 
15 #ifndef __IPSDKBASEDATA_DATAITEMNODECOLL_H__
16 #define __IPSDKBASEDATA_DATAITEMNODECOLL_H__
17 
18 #include <IPSDKBaseData/DataItem/NodeColl/BaseDataItemNodeColl.h>
19 
20 namespace ipsdk {
21 
24 
25 template <typename TNodeType>
27 {
28 // predefined public types
29 public:
31  typedef TNodeType NodeType;
32 
34  typedef boost::shared_ptr<NodeType> NodePtrType;
35 
37  typedef std::vector<NodePtrType> CollType;
38 
39 public:
42  DataItemNodeColl() {}
43  ~DataItemNodeColl() {}
45 
46 // methods
47 public:
49  const CollType& getColl() const;
50 
52  CollType& getColl();
53 
58  const NodeType& getNode(const ipUInt32 nodeIdx) const;
59  NodeType& getNode(const ipUInt32 nodeIdx);
61 
65  void push_back(const NodePtrType& pItemNode);
66 
67 // attributes
68 protected:
69 
70 };
71 
74 
75 template <typename TNodeType>
76 inline const typename DataItemNodeColl<TNodeType>::CollType&
78 {
79  return reinterpret_cast<const typename DataItemNodeColl<NodeType>::CollType&>(_coll);
80 }
81 
82 template <typename TNodeType>
85 {
86  return reinterpret_cast<typename DataItemNodeColl<NodeType>::CollType&>(_coll);
87 }
88 
89 template <typename TNodeType>
92 {
93  return static_cast<const typename DataItemNodeColl<TNodeType>::NodeType&>(getNodeBase(nodeIdx));
94 }
95 
96 template <typename TNodeType>
99 {
100  return static_cast<typename DataItemNodeColl<TNodeType>::NodeType&>(getNodeBase(nodeIdx));
101 }
102 
103 template <typename TNodeType>
104 inline void
106 {
107  BaseDataItemNodeColl::push_back(boost::static_pointer_cast<BaseDataItemNode, NodeType>(pItemNode));
108 }
109 
112 
113 } // end of namespace ipsdk
114 
115 #endif // __IPSDKBASEDATA_DATAITEMNODECOLL_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
std::vector< NodePtrType > CollType
collection type associated to object
Definition: DataItemNodeColl.h:37
const NodeType & getNode(const ipUInt32 nodeIdx) const
retrieve node associated to given index
Definition: DataItemNodeColl.h:91
Base class used to store data item nodes collection.
Definition: BaseDataItemNodeColl.h:30
const CollType & getColl() const
get data item node collection associated to object
Definition: DataItemNodeColl.h:77
TNodeType NodeType
node type associated to object
Definition: DataItemNodeColl.h:31
boost::shared_ptr< NodeType > NodePtrType
node shared pointer type associated to object
Definition: DataItemNodeColl.h:34
void push_back(const NodePtrType &pItemNode)
push back a new element into collection
Definition: DataItemNodeColl.h:105
Template class used to store data item nodes collection.
Definition: DataItemNodeColl.h:26
void push_back(const DataItemNodePtr &pItemNode)
push back a new element into collection
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53