IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
DataTypeIdentifierColl.h
1 // DataTypeIdentifierColl.h:
3 // -------------------------
4 //
14 
15 #ifndef __IPSDKBASEPROCESSING_DATATYPEIDENTIFIERCOLL_H__
16 #define __IPSDKBASEPROCESSING_DATATYPEIDENTIFIERCOLL_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::processor::DataTypeIdentifierColl::_pDataTypeId1' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::processor::DataTypeIdentifierColl'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
24 #include <IPSDKBaseProcessing/Algorithm/Function/BaseDataTypeIdentifier.h>
25 #include <IPSDKSerialization/Engine/BaseSerializationObject.h>
26 #include <vector>
27 
28 namespace ipsdk {
29 namespace processor {
30 
33 
35 {
36  // declare serial class
38 
39 // predefined public types
40 public:
43 
44 public:
50 
51 // methods
52 public:
54  bool isInit() const;
55 
57  void init();
58 
62  void init(const DataTypeId& dataTypeId);
63 
69  void init(const DataTypeId& dataTypeId1,
70  const DataTypeId& dataTypeId2);
71 
79  void init(const DataTypeId& dataTypeId1,
80  const DataTypeId& dataTypeId2,
81  const DataTypeId& dataTypeId3);
82 
86  ipUInt32 getNbDataTypeId() const;
87 
91  const DataTypeId& getDataTypeId(ipUInt32 dataTypeIdIdx) const;
92 
94  void clear();
95 
102  bool operator<(const DataTypeIdentifierColl& dataTypeIdColl1,
103  const DataTypeIdentifierColl& dataTypeIdColl2);
104 
105 // attributes
106 protected:
108  typedef boost::shared_ptr<DataTypeId> DataTypeIdPtr;
109 
111  typedef std::vector<DataTypeIdPtr> DataTypeIdColl;
112 
115 
117  bool _bInit;
118 };
119 
122 
123 inline bool
125 {
126  return _bInit;
127 }
128 
131 
132 } // end of namespace processor
133 } // end of namespace ipsdk
134 
135 #endif // __IPSDKBASEPROCESSING_DATATYPEIDENTIFIERCOLL_H__
#define IPSDK_DECLARE_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:73
bool _bInit
object initialisation flag
Definition: DataTypeIdentifierColl.h:117
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
bool isInit() const
retrieve object initialisation flag
Definition: DataTypeIdentifierColl.h:124
BaseDataTypeIdentifier DataTypeId
data type identifier used by collection
Definition: DataTypeIdentifierColl.h:42
boost::shared_ptr< DataTypeId > DataTypeIdPtr
shared pointer to data type identifier
Definition: DataTypeIdentifierColl.h:108
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType1::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_Value > >::type, typename boost::is_same< boost::mpl::int_< AttributeType2::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_Value > >::type, typename boost::is_same< typename AttributeType1::ValueType, typename AttributeType2::ValueType >::type >::type, RulePtr >::type operator<(const boost::shared_ptr< AttributeType1 > &pAttribute1, const boost::shared_ptr< AttributeType2 > &pAttribute2)
Rule allowing to check whether a value attribute is lower than another.
Definition: AttributeComparisonRuleOperators.h:155
Definition of import/export macro for library.
DataTypeIdColl _dataTypeIdColl
Data type identifiers associated to object.
Definition: DataTypeIdentifierColl.h:114
Class used for data type collection function identification.
Definition: DataTypeIdentifierColl.h:34
Class used for processing data type function identification.
Definition: BaseDataTypeIdentifier.h:27
Base class for serializable class.
Definition: BaseSerializationObject.h:33
std::vector< DataTypeIdPtr > DataTypeIdColl
collection of data type identifiers
Definition: DataTypeIdentifierColl.h:111
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53