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

Header part of macros set for processing algorithm class declaration. More...

#include <IPSDKBaseProcessing/Algorithm/ProcessingAlgorithmHdrDetailsMacros.h>

Go to the source code of this file.

Macros

#define IPSDK_DECLARE_PROCESSING_ALGORITHM(libraryName, algoName, RuleString, attributeSeq)
 macro allowing to declare a generic processing algorithm More...
 
#define IPSDK_DECLARE_NOTYPE_ALGORITHM_FUNCTION_SELECTOR()
 macro allowing to implement processing data identifier retrieval method for function selector usage without data type More...
 
#define IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR(dataTypeSeq)
 macro allowing to implement processing data identifier retrieval method for function selector usage More...
 
#define IPSDK_DECLARE_ALGORITHM_NOPARSED_DATA()
 macro allowing to implement method defining an empty data parser collection More...
 
#define IPSDK_DECLARE_ALGORITHM_PARSED_DATA(dataSeq)
 macro allowing to implement method allowing to retrieve data parser collection More...
 
#define IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM(libraryName, algoName, RuleString, attributeSeq)
 macro allowing to declare a generic processing algorithm on GPU More...
 
#define IPSDKCUDA_DECLARE_ALGORITHM_FUNCTION_SELECTOR(dataTypeSeq)
 macro allowing to declare and implement the number data type indentifier collection More...
 
#define IPSDKCUDA_DECLARE_NOTYPE_ALGORITHM_FUNCTION_SELECTOR()
 

Detailed Description

Header part of macros set for processing algorithm class declaration.

Author
E. Noirfalise
Date
2014/02/17

Macro Definition Documentation

◆ IPSDK_DECLARE_PROCESSING_ALGORITHM

#define IPSDK_DECLARE_PROCESSING_ALGORITHM (   libraryName,
  algoName,
  RuleString,
  attributeSeq 
)
Value:
namespace details { \
static bool functionRegistration(); \
static bool safeFunctionRegistration(); \
} \
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(algoName, Lvl3) : \
public ipsdk::processor::BaseProcessingAlgorithm \
{ \
IPSDK_DECLARE_PROCESSOR(libraryName, BOOST_PP_CAT(algoName, Lvl3), \
RuleString, attributeSeq) \
friend bool details::functionRegistration(); \
public: \
static const FunctionSelector& accessFunctionSelector(); \
static const ipsdk::processor::InstructionSetsIdentifier& accessForcedInstructionSets(); \
static void forceInstructionSets(const ipsdk::processor::InstructionSetsIdentifier& forcedInstructionSetsId); \
static void releaseForcedInstructionSets(); \
private: \
const ipsdk::processor::InstructionSetsIdentifier& getForcedInstructionSets() const; \
static ipsdk::processor::InstructionSetsIdentifier& retrieveForcedInstructionSets(); \
const FunctionSelector& getFunctionSelector() const; \
static FunctionSelector& retrieveFunctionSelector();
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDK_LIB_API(libraryName)
macro allowing to format macro name used to retrieve a library api macro given its base name ...
Class used for processor instruction sets function identification.
Definition: InstructionSetsIdentifier.h:33

macro allowing to declare a generic processing algorithm

◆ IPSDK_DECLARE_NOTYPE_ALGORITHM_FUNCTION_SELECTOR

#define IPSDK_DECLARE_NOTYPE_ALGORITHM_FUNCTION_SELECTOR ( )
Value:
public: \
BOOST_STATIC_CONSTANT(ipsdk::ipUInt32, g_nbTypesForFunSelection = 0); \
private: \
void getDataTypeIdColl(DataTypeIdColl& dataTypeIdColl) const \
{ \
dataTypeIdColl.init(); \
}
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53

macro allowing to implement processing data identifier retrieval method for function selector usage without data type

◆ IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR

#define IPSDK_DECLARE_ALGORITHM_FUNCTION_SELECTOR (   dataTypeSeq)
Value:
public: \
BOOST_STATIC_CONSTANT(ipsdk::ipUInt32, g_nbTypesForFunSelection = \
BOOST_PP_SEQ_SIZE(dataTypeSeq)); \
private: \
void getDataTypeIdColl(DataTypeIdColl& dataTypeIdColl) const \
{ \
BOOST_PP_SEQ_FOR_EACH_I(IPSDK_INIT_IDENTIFIER_FROM_ATTRIBUTE_MACRO, _, dataTypeSeq); \
dataTypeIdColl.init(BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(dataTypeSeq), \
}
#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)(Attribute...
Definition: ProcessingAlgorithmHdrDetailsMacros.h:44
#define IPSDK_ENUM_DATATYPE_IDENTIFIER_MACRO(z, n, _)
[Internal] macro allowing to enumerate data type identifiers
Definition: ProcessingAlgorithmHdrDetailsMacros.h:30
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53

macro allowing to implement processing data identifier retrieval method for function selector usage

◆ IPSDK_DECLARE_ALGORITHM_NOPARSED_DATA

#define IPSDK_DECLARE_ALGORITHM_NOPARSED_DATA ( )
Value:
private: \
void initDataParserColl(DataParserColl& dataParserColl) { \
dataParserColl.clear(); \
} \
void clearDataParserColl() { \
}

macro allowing to implement method defining an empty data parser collection

◆ IPSDK_DECLARE_ALGORITHM_PARSED_DATA

#define IPSDK_DECLARE_ALGORITHM_PARSED_DATA (   dataSeq)
Value:
protected: \
BOOST_PP_SEQ_FOR_EACH(IPSDK_DECLARE_DATA_PARSER_MACRO, _, dataSeq) \
private: \
void initDataParserColl(DataParserColl& dataParserColl) { \
dataParserColl.clear(); \
BOOST_PP_SEQ_FOR_EACH(IPSDK_INIT_DATA_PARSER_MACRO, \
dataParserColl, dataSeq) \
} \
void clearDataParserColl() { \
BOOST_PP_SEQ_FOR_EACH(IPSDK_CLEAR_DATA_PARSER_MACRO, \
_, dataSeq) \
}
#define IPSDK_CLEAR_DATA_PARSER_MACRO(r, _, dataTypeId)
[Internal] macro allowing to clear data parser attributes for processor object from a pair of form (D...
Definition: ProcessingAlgorithmHdrDetailsMacros.h:98
#define IPSDK_INIT_DATA_PARSER_MACRO(r, collName, dataTypeId)
[Internal] macro allowing to initialize data parser attributes for processor object from a pair of fo...
Definition: ProcessingAlgorithmHdrDetailsMacros.h:78
#define IPSDK_DECLARE_DATA_PARSER_MACRO(r, _, dataTypeId)
[Internal] macro allowing to generate data parser attributes for processor object from a pair of form...
Definition: ProcessingAlgorithmHdrDetailsMacros.h:58

macro allowing to implement method allowing to retrieve data parser collection

◆ IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM

#define IPSDK_DECLARE_GPU_PROCESSING_ALGORITHM (   libraryName,
  algoName,
  RuleString,
  attributeSeq 
)
Value:
namespace details { \
static bool functionRegistration(); \
} \
class IPSDK_LIB_API(libraryName) BOOST_PP_CAT(algoName, GpuLvl3) : \
public ipsdk::processor::BaseGpuProcessingAlgorithm \
{ \
IPSDK_DECLARE_PROCESSOR(libraryName, BOOST_PP_CAT(algoName, GpuLvl3), \
RuleString, attributeSeq) \
friend bool details::functionRegistration(); \
public: \
static const FunctionSelector& accessFunctionSelector(); \
private: \
const FunctionSelector& getFunctionSelector() const; \
static FunctionSelector& retrieveFunctionSelector();
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDK_LIB_API(libraryName)
macro allowing to format macro name used to retrieve a library api macro given its base name ...

macro allowing to declare a generic processing algorithm on GPU

◆ IPSDKCUDA_DECLARE_ALGORITHM_FUNCTION_SELECTOR

#define IPSDKCUDA_DECLARE_ALGORITHM_FUNCTION_SELECTOR (   dataTypeSeq)
Value:
public: \
BOOST_STATIC_CONSTANT(ipsdk::ipUInt32, g_nbTypesForFunSelection = \
BOOST_PP_SEQ_SIZE(dataTypeSeq)); \
private: \
void getDataTypeIdColl(DataTypeIdColl& dataTypeIdColl) const \
{ \
ISPDKCUDA_DECLARE_IDENTIFIERS(dataTypeSeq) \
ISPDKCUDA_INIT_IDENTIFIERS_FROM_ATTRIBUTE(dataTypeSeq) \
dataTypeIdColl.init(BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(dataTypeSeq), \
}
#define IPSDK_ENUM_DATATYPE_IDENTIFIER_MACRO(z, n, _)
[Internal] macro allowing to enumerate data type identifiers
Definition: ProcessingAlgorithmHdrDetailsMacros.h:30
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53

macro allowing to declare and implement the number data type indentifier collection

◆ IPSDKCUDA_DECLARE_NOTYPE_ALGORITHM_FUNCTION_SELECTOR

#define IPSDKCUDA_DECLARE_NOTYPE_ALGORITHM_FUNCTION_SELECTOR ( )
Value:
public: \
BOOST_STATIC_CONSTANT(ipsdk::ipUInt32, g_nbTypesForFunSelection = 0); \
private: \
void getDataTypeIdColl(DataTypeIdColl& dataTypeIdColl) const \
{ \
dataTypeIdColl.init(); \
}
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53