IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
DataItemTypes.h
Go to the documentation of this file.
1 // DataItemTypes.h:
3 // ----------------
4 //
14 
15 #ifndef __IPSDKBASEDATA_DATAITEMTYPES_H__
16 #define __IPSDKBASEDATA_DATAITEMTYPES_H__
17 
18 #include <IPSDKUtil/BaseTypes.h>
20 #include <boost/shared_ptr.hpp>
21 #include <set>
22 
23 namespace ipsdk {
24 
25 class BaseDataItem;
26 class BaseDataItemLeaf;
27 template <typename T>
30 template <typename T>
32 class BaseDataItemNode;
34 class DataItemMap;
35 
38 
42 
44  (eDIT_Node)
46  (eDIT_LeafColl)
50  (eDIT_NodeColl)
54  (eDIT_Map)
58 )
62 
66 
67  (eDIVT_Bool)
68  (eDIVT_Int8)
69  (eDIVT_UInt8)
71  (eDIVT_UInt16)
73  (eDIVT_UInt32)
75  (eDIVT_UInt64)
77  (eDIVT_Real64)
79  (eDIVT_Path)
81 )
82 
83 
99 typedef DataItemLeaf<std::string> StringDataItem;
100 typedef DataItemLeaf<boost::filesystem::path> PathDataItem;
102 
103 // \brief basic collections for data items
117 typedef DataItemLeafColl<boost::filesystem::path> PathVectorDataItem;
122 
124 typedef std::set<std::string> ItemNames;
125 
127 typedef boost::shared_ptr<BaseDataItem> DataItemPtr;
128 
130 typedef boost::shared_ptr<const BaseDataItem> DataItemConstPtr;
131 
133 typedef boost::shared_ptr<BaseDataItemLeaf> DataItemLeafPtr;
134 
136 typedef boost::shared_ptr<BaseDataItemLeafColl> DataItemLeafCollPtr;
137 
139 typedef boost::shared_ptr<BaseDataItemNode> DataItemNodePtr;
140 
142 typedef boost::shared_ptr<const BaseDataItemNode> DataItemNodeConstPtr;
145 typedef boost::shared_ptr<BaseDataItemNodeColl> DataItemNodeCollPtr;
148 typedef boost::shared_ptr<DataItemMap> DataItemMapPtr;
151 typedef boost::shared_ptr<const DataItemMap> DataItemMapConstPtr;
164 template <typename T>
166 
169 #define IPSDK_DATAITEM_VALUETYPE_TO_ENUM_STRUCT(ValueType, EnumValue) \
170  template<> struct DataItemValueType2Enum<ValueType> { \
171  static const eDataItemValueType::domain g_enumValue = eDataItemValueType::EnumValue; \
172  };
173 
190 
193 template <eDataItemValueType::value_type enumValue>
194 struct Enum2DataItemValueType;
195 
198 #define IPSDK_ENUM_STRUCT_TO_DATAITEM_VALUETYPE(ValueType, EnumValue) \
199  template<> struct Enum2DataItemValueType<eDataItemValueType::EnumValue> { \
200  typedef ValueType Type; \
201  };
202 
219 
222 
223 } // end of namespace ipsdk
224 
225 #endif // __IPSDKBASEDATA_DATAITEMTYPES_H__
Template class for collection of data item leafs.
Definition: DataItemTypes.h:31
IPSDK_FORCEINLINE void set(T *buffer, T value, ipUInt64 nbElts)
set function; assigns a given value to the &#39;nbElts&#39; elements of a buffer
Definition: set.h:34
Definition: DataItemTypes.h:51
int8_t ipInt8
Base types definition.
Definition: BaseTypes.h:48
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
IPSDK_ENUM_STRUCT_TO_DATAITEM_VALUETYPE(ipBool, eDIVT_Bool)
boost::shared_ptr< const BaseDataItemNode > DataItemNodeConstPtr
shared pointer to const DataItemNode
Definition: DataItemTypes.h:161
Data item associated to a 32 bits unsigned integer value.
Definition: DataItemTypes.h:84
boost::shared_ptr< const BaseDataItem > DataItemConstPtr
shared pointer to const DataItem
Definition: DataItemTypes.h:149
Data item associated to a string value.
Definition: DataItemTypes.h:94
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Class used to store a variable collection of heterogeneous nodes.
Definition: DataItemMap.h:31
Data item associated to a 32 bits real value.
Definition: DataItemTypes.h:90
boost::shared_ptr< BaseDataItemLeafColl > DataItemLeafCollPtr
shared pointer to DataItemLeafColl
Definition: DataItemTypes.h:155
IPSDK_DATAITEM_VALUETYPE_TO_ENUM_STRUCT(ipBool, eDIVT_Bool)
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Data item associated to a 64 bits real value.
Definition: DataItemTypes.h:92
Data item associated to a 8 bits signed integer value.
Definition: DataItemTypes.h:74
int32_t ipInt32
Base types definition.
Definition: BaseTypes.h:52
boost::shared_ptr< BaseDataItemLeaf > DataItemLeafPtr
shared pointer to DataItemLeaf
Definition: DataItemTypes.h:152
Definition: DataItemTypes.h:59
Data item associated to a 32 bits signed integer value.
Definition: DataItemTypes.h:82
Definition: DataItemNodeHdrMacrosDetails.h:48
Definition: DataItemTypes.h:55
boost::shared_ptr< DataItemMap > DataItemMapPtr
shared pointer to DataItemMap
Definition: DataItemTypes.h:167
Base class used to store data item nodes collection.
Definition: BaseDataItemNodeColl.h:30
int16_t ipInt16
Base types definition.
Definition: BaseTypes.h:50
uint8_t ipUInt8
Base types definition.
Definition: BaseTypes.h:49
boost::shared_ptr< BaseDataItem > DataItemPtr
shared pointer to DataItem
Definition: DataItemTypes.h:146
Data item associated to a 64 bits unsigned integer value.
Definition: DataItemTypes.h:88
Base types for multiplatform compatibility.
boost::shared_ptr< BaseDataItemNodeColl > DataItemNodeCollPtr
shared pointer to DataItemNodeColl
Definition: DataItemTypes.h:164
Data item associated to a 16 bits unsigned integer value.
Definition: DataItemTypes.h:80
Data item associated to a 64 bits signed integer value.
Definition: DataItemTypes.h:86
boost::shared_ptr< BaseDataItemNode > DataItemNodePtr
shared pointer to DataItemNode
Definition: DataItemTypes.h:158
Base class for data item nodes.
Definition: BaseDataItemNode.h:29
boost::shared_ptr< const DataItemMap > DataItemMapConstPtr
shared pointer to const DataItemMap
Definition: DataItemTypes.h:170
std::set< std::string > ItemNames
collection of names or ids for items
Definition: DataItemTypes.h:143
eDataItemValueType
Enumerate describing data items value type.
Definition: DataItemTypes.h:70
Data item associated to an enumerate value.
Definition: DataItemTypes.h:98
bool ipBool
Base types definition.
Definition: BaseTypes.h:47
Template class for data item leafs instantiation.
Definition: DataItemTypes.h:28
Data item associated to a boolean value.
Definition: DataItemTypes.h:72
Definition: DataItemTypes.h:45
Base class for data item leafs.
Definition: BaseDataItemLeaf.h:25
STL namespace.
int64_t ipInt64
Base types definition.
Definition: BaseTypes.h:54
structure used to retrieve enumerate value from data item value type
Definition: DataItemTypes.h:184
Base class for data items.
Definition: BaseDataItem.h:27
Data item associated to a path value.
Definition: DataItemTypes.h:96
Predefined macros for enumerates management.
DataItemNodePtr(* DataItemNodeCreator)()
data item node creator function
Definition: DataItemTypes.h:176
#define IPSDK_ENUM(enumTypeStr, enumSeq)
macro allowing to declare an enumerate for library
Definition: EnumMacros.h:26
Data item used to store simple values.
Definition: DataItemTypes.h:47
uint16_t ipUInt16
Base types definition.
Definition: BaseTypes.h:51
Base class for collection of data item leafs.
Definition: BaseDataItemLeafColl.h:26
eDataItemType
Enumerate describing data items type.
Definition: DataItemTypes.h:43
Data item associated to a 16 bits signed integer value.
Definition: DataItemTypes.h:78
float ipReal32
Base types definition.
Definition: BaseTypes.h:56
Data item associated to a 8 bits unsigned integer value.
Definition: DataItemTypes.h:76
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53