IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Macros
ProcessingAlgorithmHdrDetailsMacros.h File Reference

Internal header part of macros set for processing algorithm class declaration. More...

#include <IPSDKBaseProcessing/Processor/ProcessorHdrMacros.h>
#include <IPSDKBaseProcessing/Algorithm/BaseProcessingAlgorithm.h>
#include <IPSDKBaseProcessing/Algorithm/Function/AlgorithmFunctionSelector.h>
#include <IPSDKBaseProcessing/Algorithm/Function/DataTypeIdentifierColl.h>
#include <boost/make_shared.hpp>

Go to the source code of this file.

Macros

#define IPSDK_ENUM_DATATYPE_IDENTIFIER_MACRO(z, n, _)   BOOST_PP_CAT(dataTypeIdentifier, n)
 [Internal] macro allowing to enumerate data type identifiers
 
#define IPSDK_ENUM_INSTRUCTION_SET_MACRO(z, n, seq)   ipsdk::eInstructionSet::BOOST_PP_SEQ_ELEM(n, seq)
 [Internal] macro allowing to enumerate instruction sets
 
#define IPSDK_INIT_IDENTIFIER_FROM_ATTRIBUTE_MACRO(r, _, idx, dataTypeId)
 [Internal] macro allowing to generate a data type identifier from a pair of form (DataType)(AttributeName) More...
 
#define IPSDK_DECLARE_DATA_PARSER_MACRO(r, _, dataTypeId)
 [Internal] macro allowing to generate data parser attributes for processor object from a pair of form (DataType)(AttributeName) More...
 
#define IPSDK_REGISTER_DATA_PARSER(dataType, attributeName, parserName, collName)
 [Internal] macro allowing to initialize data parser attributes for processor object (optional non initialized attributes do not lead to data parser initialization and registration) More...
 
#define IPSDK_INIT_DATA_PARSER_MACRO(r, collName, dataTypeId)
 [Internal] macro allowing to initialize data parser attributes for processor object from a pair of form (DataType)(AttributeName) More...
 
#define IPSDK_CLEAR_DATA_PARSER(parserName)
 [Internal] macro allowing to clear data parser attributes for processor object from its name More...
 
#define IPSDK_CLEAR_DATA_PARSER_MACRO(r, _, dataTypeId)
 [Internal] macro allowing to clear data parser attributes for processor object from a pair of form (DataType)(AttributeName) More...
 
#define IPSDK_ADD_TO_SEQ(s, value, seqElem)   (value)(seqElem)
 [Internal] macro allowing to transform a sequence of type (e1)(e2)... in ((value)(e1))((value)(e2))...
 
#define IPSDK_TRANSFORM_SEQ(bufferTypeSeq, value)
 [Internal] macro allowing to transform a sequence of type (e1)(e2)... in ((value)(e1))((value)(e2))... More...
 
#define IPSDKCUDA_TYPE_WITH_NAMESPACE(param)   ipsdk::image::eImageBufferType::param
 
#define ISPDKCUDA_DECLARE_IDENTIFIER_MACRO(r, data, idx, elem)   ipsdk::imaproc::ImageBufferTypeIdentifier BOOST_PP_CAT(dataTypeIdentifier, idx);
 
#define ISPDKCUDA_DECLARE_IDENTIFIERS(ST)   BOOST_PP_SEQ_FOR_EACH_I(ISPDKCUDA_DECLARE_IDENTIFIER_MACRO, _, ST)
 
#define ISPDKCUDA_INIT_IDENTIFIER_MACRO(r, data, idx, elem)   BOOST_PP_CAT(dataTypeIdentifier, idx).init(IPSDKCUDA_TYPE_WITH_NAMESPACE(elem));
 
#define ISPDKCUDA_INIT_IDENTIFIERS(ST)   BOOST_PP_SEQ_FOR_EACH_I(ISPDKCUDA_INIT_IDENTIFIER_MACRO, _, ST)
 
#define ISPDKCUDA_INIT_IDENTIFIER_FROM_ATTRIBUTE_MACRO(r, data, idx, elem)   BOOST_PP_CAT(dataTypeIdentifier, idx).init(BOOST_PP_CAT(_p, elem)->getImage().getBufferType());
 
#define ISPDKCUDA_INIT_IDENTIFIERS_FROM_ATTRIBUTE(ST)   BOOST_PP_SEQ_FOR_EACH_I(ISPDKCUDA_INIT_IDENTIFIER_FROM_ATTRIBUTE_MACRO, _, ST)
 

Detailed Description

Internal header part of macros set for processing algorithm class declaration.

Author
E. Noirfalise
Date
2014/02/17

Macro Definition Documentation

◆ IPSDK_INIT_IDENTIFIER_FROM_ATTRIBUTE_MACRO

#define IPSDK_INIT_IDENTIFIER_FROM_ATTRIBUTE_MACRO (   r,
  _,
  idx,
  dataTypeId 
)
Value:
BOOST_PP_CAT(IPSDK_IDENTIFIER_TYPE_, BOOST_PP_SEQ_ELEM(0, dataTypeId))() \
BOOST_PP_CAT(dataTypeIdentifier, idx); \
BOOST_PP_CAT(IPSDK_INIT_IDENTIFIER_FROM_ATTRIBUTE_, \
BOOST_PP_SEQ_ELEM(0, dataTypeId))( \
BOOST_PP_CAT(dataTypeIdentifier, idx), \
BOOST_PP_SEQ_ELEM(1, dataTypeId))

[Internal] macro allowing to generate a data type identifier from a pair of form (DataType)(AttributeName)

◆ IPSDK_DECLARE_DATA_PARSER_MACRO

#define IPSDK_DECLARE_DATA_PARSER_MACRO (   r,
  _,
  dataTypeId 
)
Value:
boost::shared_ptr< \
BOOST_PP_CAT(IPSDK_PARSER_TYPE_, BOOST_PP_SEQ_ELEM(0, dataTypeId))( \
BOOST_PP_SEQ_ELEM(1, dataTypeId)) > \
BOOST_PP_CAT(IPSDK_PARSER_NAME_, BOOST_PP_SEQ_ELEM(0, dataTypeId))( \
BOOST_PP_SEQ_ELEM(1, dataTypeId));

[Internal] macro allowing to generate data parser attributes for processor object from a pair of form (DataType)(AttributeName)

◆ IPSDK_REGISTER_DATA_PARSER

#define IPSDK_REGISTER_DATA_PARSER (   dataType,
  attributeName,
  parserName,
  collName 
)
Value:
if (BOOST_PP_CAT(_p, attributeName)->isInit() == true) { \
BOOST_PP_CAT(IPSDK_PARSER_CREATE_, dataType)(attributeName); \
collName.push_back(parserName); \
}

[Internal] macro allowing to initialize data parser attributes for processor object (optional non initialized attributes do not lead to data parser initialization and registration)

◆ IPSDK_INIT_DATA_PARSER_MACRO

#define IPSDK_INIT_DATA_PARSER_MACRO (   r,
  collName,
  dataTypeId 
)
Value:
IPSDK_REGISTER_DATA_PARSER(BOOST_PP_SEQ_ELEM(0, dataTypeId), \
BOOST_PP_SEQ_ELEM(1, dataTypeId), \
BOOST_PP_CAT(IPSDK_PARSER_NAME_, \
BOOST_PP_SEQ_ELEM(0, dataTypeId))( \
BOOST_PP_SEQ_ELEM(1, dataTypeId)), \
collName);
#define IPSDK_REGISTER_DATA_PARSER(dataType, attributeName, parserName, collName)
[Internal] macro allowing to initialize data parser attributes for processor object (optional non ini...
Definition: ProcessingAlgorithmHdrDetailsMacros.h:69

[Internal] macro allowing to initialize data parser attributes for processor object from a pair of form (DataType)(AttributeName)

◆ IPSDK_CLEAR_DATA_PARSER

#define IPSDK_CLEAR_DATA_PARSER (   parserName)
Value:
if (parserName.get() != 0) { \
parserName->clear(); \
parserName.reset(); \
}

[Internal] macro allowing to clear data parser attributes for processor object from its name

◆ IPSDK_CLEAR_DATA_PARSER_MACRO

#define IPSDK_CLEAR_DATA_PARSER_MACRO (   r,
  _,
  dataTypeId 
)
Value:
BOOST_PP_CAT(IPSDK_PARSER_NAME_, \
BOOST_PP_SEQ_ELEM(0, dataTypeId))( \
BOOST_PP_SEQ_ELEM(1, dataTypeId)))
#define IPSDK_CLEAR_DATA_PARSER(parserName)
[Internal] macro allowing to clear data parser attributes for processor object from its name ...
Definition: ProcessingAlgorithmHdrDetailsMacros.h:89

[Internal] macro allowing to clear data parser attributes for processor object from a pair of form (DataType)(AttributeName)

◆ IPSDK_TRANSFORM_SEQ

#define IPSDK_TRANSFORM_SEQ (   bufferTypeSeq,
  value 
)
Value:
BOOST_PP_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE((_)bufferTypeSeq)), \
BOOST_PP_SEQ_TRANSFORM(IPSDK_ADD_TO_SEQ, value, \
BOOST_PP_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE((_)bufferTypeSeq)), \
bufferTypeSeq, (_))), )
#define IPSDK_ADD_TO_SEQ(s, value, seqElem)
[Internal] macro allowing to transform a sequence of type (e1)(e2)... in ((value)(e1))((value)(e2))...
Definition: ProcessingAlgorithmHdrDetailsMacros.h:110

[Internal] macro allowing to transform a sequence of type (e1)(e2)... in ((value)(e1))((value)(e2))...