IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | List of all members
ipsdk::processor::AlgorithmFunctionSelector Class Reference

Class used to select a processing function given data types informations. More...

#include <AlgorithmFunctionSelector.h>

Inheritance diagram for ipsdk::processor::AlgorithmFunctionSelector:
ipsdk::BaseDynamicObject

Public Types

typedef AlgorithmFunctionIdentifier FunctionId
 algorithm function identifier type used by processing algorithm
 
typedef DataTypeIdentifierColl DataTypeIdColl
 data type identifier collection used by processing algorithm
 
typedef BaseProcessingAlgorithm::FunctionType FunctionType
 function type used by processing algorithm
 

Public Member Functions

bool existsFunction (const FunctionId &functionId) const
 check whether a processing function has already been registred More...
 
BoolResult registerFunction (const FunctionId &functionId)
 add a new function to collection More...
 
bool isAvailableFunction (const DataTypeIdColl &dataTypeIdColl, const InstructionSetsIdentifier &instructionSetsId=InstructionSetsIdentifier(), const ipUInt64 nbDataByElement=-1, const ipUInt64 nbInitData=0, const ipUInt64 nbFinalData=0) const
 check whether a function is available for processing on local computer given processing data types, an optional instruction set collection and an optional number of data by element to process More...
 
const FunctionIdretrieveFunctionIdentifier (const DataTypeIdColl &dataTypeIdColl, const InstructionSetsIdentifier &instructionSetsId=InstructionSetsIdentifier(), const ipUInt64 nbDataByElement=-1, const ipUInt64 nbInitData=0, const ipUInt64 nbFinalData=0) const
 retrieve processing function on local computer associated to given processing data types and an optional instruction set collection More...
 
void clear ()
 clear object data
 
Constructors and destructors
 AlgorithmFunctionSelector ()
 
 ~AlgorithmFunctionSelector ()
 
- Public Member Functions inherited from ipsdk::BaseDynamicObject
virtual const std::string & getClassName () const
 method allowing to retrieve object class name
 
virtual BaseDynamicObjectcreateNew () const =0
 method allowing to create new instance of current object type
 
virtual DynamicObjectPtr createShared () const =0
 method allowing to create new shared instance of current object type
 
virtual bool hasCopySupport () const =0
 check whether objet has copy support
 
virtual BaseDynamicObjectduplicate () const =0
 method allowing to duplicate current object More...
 
virtual DynamicObjectPtr duplicateShared () const =0
 method allowing shared duplication of current object More...
 
 BaseDynamicObject ()
 
virtual ~BaseDynamicObject ()=0
 

Static Public Member Functions

static bool isSupported (const InstructionSetsIdentifier &instructionSetsId)
 check whether a given instruction set collection is supported by hardware
 
static bool isEnabled (const InstructionSetsIdentifier &instructionSetsId)
 check whether a given instruction set collection is enable
 
- Static Public Member Functions inherited from ipsdk::BaseDynamicObject
static const std::string & getTypeName ()
 method allowing to retrieve name associated to class
 

Protected Types

typedef std::multimap< ipUInt64, FunctionIdFunctionEfficiencyColl
 function identifiers sorted by efficiency
 
typedef std::map< DataTypeIdColl, FunctionEfficiencyCollFunctionsColl
 function identifiers sorted by data types
 

Protected Attributes

FunctionsColl _functionsColl
 collection of function identifiers sorted by processing data types
 

Additional Inherited Members

- Protected Member Functions inherited from ipsdk::BaseDynamicObject
virtual void initCtorCopy (const BaseDynamicObject &object)
 
virtual void copy (const BaseDynamicObject &object)
 method allowing to copy data from another object
 

Detailed Description

Class used to select a processing function given data types informations.

Author
E. Noirfalise
Date
2014/2/17

Member Function Documentation

◆ existsFunction()

bool ipsdk::processor::AlgorithmFunctionSelector::existsFunction ( const FunctionId functionId) const

check whether a processing function has already been registred

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif functionId.isInit() == false
ipsdk::processor::IPSDKBaseProcessingExceptionif underlying data type identifier types mismatch

◆ registerFunction()

BoolResult ipsdk::processor::AlgorithmFunctionSelector::registerFunction ( const FunctionId functionId)

add a new function to collection

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif existsFunction(functionId) == true
Returns
false if function is not supported by local computer

◆ isAvailableFunction()

bool ipsdk::processor::AlgorithmFunctionSelector::isAvailableFunction ( const DataTypeIdColl dataTypeIdColl,
const InstructionSetsIdentifier instructionSetsId = InstructionSetsIdentifier(),
const ipUInt64  nbDataByElement = -1,
const ipUInt64  nbInitData = 0,
const ipUInt64  nbFinalData = 0 
) const

check whether a function is available for processing on local computer given processing data types, an optional instruction set collection and an optional number of data by element to process

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif dataTypeIdColl.isInit() == false
ipsdk::processor::IPSDKBaseProcessingExceptionif underlying data type identifier types mismatch
ipsdk::processor::IPSDKBaseProcessingExceptionif instructionSetsId.isInit() == false

◆ retrieveFunctionIdentifier()

const FunctionId& ipsdk::processor::AlgorithmFunctionSelector::retrieveFunctionIdentifier ( const DataTypeIdColl dataTypeIdColl,
const InstructionSetsIdentifier instructionSetsId = InstructionSetsIdentifier(),
const ipUInt64  nbDataByElement = -1,
const ipUInt64  nbInitData = 0,
const ipUInt64  nbFinalData = 0 
) const

retrieve processing function on local computer associated to given processing data types and an optional instruction set collection

Note
if instruction set collection and number of data by element to process are not provided method retrieve most efficient available processing function on local computer
Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif isAvailableFunction(dataTypeIdColl, instructionSetsId, nbDataToProcess, nbInitData, nbFinalData) == false

The documentation for this class was generated from the following file: