IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ProcessingAlgorithmSrcDetailsMacros.h
Go to the documentation of this file.
1 // ProcessingAlgorithmSrcDetailsMacros.h:
3 // --------------------------------------
4 //
15 
16 #ifndef __IPSDKBASEPROCESSING_PROCESSINGALGORITHMSRCDETAILSMACROS_H__
17 #define __IPSDKBASEPROCESSING_PROCESSINGALGORITHMSRCDETAILSMACROS_H__
18 
22 #include <boost/static_assert.hpp>
23 
26 
30 #define IPSDK_ENUM_IDENTIFIER_VALUE_MACRO(z, n, dataTypeSeq) \
31  BOOST_PP_CAT(IPSDK_GET_IDENTIFIER_VALUE_, \
32  BOOST_PP_SEQ_ELEM(0, BOOST_PP_SEQ_ELEM(n, dataTypeSeq)))( \
33  BOOST_PP_SEQ_ELEM(1, BOOST_PP_SEQ_ELEM(n, dataTypeSeq)))
34 
38 #define IPSDK_INIT_IDENTIFIER_FROM_VALUE_MACRO(r, _, idx, dataType) \
39  BOOST_PP_IF(idx, \
40  BOOST_PP_CAT(IPSDK_IDENTIFIER_TYPE_, BOOST_PP_SEQ_ELEM(0, dataType))() \
41  BOOST_PP_CAT(dataTypeIdentifier, BOOST_PP_DEC(idx)); \
42  BOOST_PP_CAT(IPSDK_INIT_IDENTIFIER_FROM_VALUE_, \
43  BOOST_PP_SEQ_ELEM(0, dataType))( \
44  BOOST_PP_CAT(dataTypeIdentifier, BOOST_PP_DEC(idx)), \
45  BOOST_PP_SEQ_ELEM(1, dataType)), \
46  )
47 
50 
55 #define IPSDK_REGISTER_ALGORITHM_FUNCTION_MACRO(className, dataTypeSeq, \
56  instructionSetsIdentifier, \
57  functionEfficiency) \
58  dataTypeIdColl.init(BOOST_PP_ENUM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE((_)dataTypeSeq)), \
59  IPSDK_ENUM_DATATYPE_IDENTIFIER_MACRO, _)); \
60  functionId.init(dataTypeIdColl, instructionSetsIdentifier, \
61  functionEfficiency, functionPtr); \
62  bRegistred = functionSelector.registerFunction(functionId); \
63  if (bRegistred == false) \
64  errorMsgColl += bRegistred.getMsg() + "\n";
65 
68 
69 #endif // __IPSDKBASEPROCESSING_PROCESSINGALGORITHMSRCDETAILSMACROS_H__
Log messages description.
Source part of macros set for processor class implementation.
Logger api for library IPSDKBaseProcessing.