IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
CudaFunctionSelector.h
Go to the documentation of this file.
1 // CudaFunctionSelector.h:
3 // -----------------------
4 //
14 
15 #ifndef __IPSDKBASEPROCESSING_CUDAFUNCTIONSELECTOR_H__
16 #define __IPSDKBASEPROCESSING_CUDAFUNCTIONSELECTOR_H__
17 
19 #include <IPSDKUtil/Dynamic/BaseDynamicObject.h>
20 #include <IPSDKBaseProcessing/Algorithm/Function/DataTypeIdentifierColl.h>
21 #include <IPSDKBaseProcessing/Algorithm/Function/CudaFunctionIdentifier.h>
22 
23 namespace ipsdk {
24 namespace processor {
25 
29 {
30  // declare dynamic class
32 
33 // predefined public types
34 public:
37 
40 
41  // Functions prototype that can be registered
42  //typedef boost::function<void(void)> CudaFunctionType;
43  typedef CudaFunctionIdentifier::FunctionType FunctionType;
44 
45 public:
51 
52 // methods
53 public:
59  bool exists(const FunctionId& functionId) const;
60 
65  bool registerFunction(const FunctionId& functionId);
66 
71  const FunctionType getFunction(const FunctionId& functionId) const;
72 
81  const FunctionId& retrieveFunctionIdentifier(const DataTypeIdColl& dataTypeIdColl) const;
82 
84  void clear();
85 
86 // attributes
87 protected:
89  typedef std::map<DataTypeIdColl, FunctionId> FunctionsColl;
90 
93 };
94 
97 
98 } // end of namespace processor
99 } // end of namespace ipsdk
100 
101 #endif // __IPSDKBASEPROCESSING_CUDAFUNCTIONSELECTOR_H__
Base class for dynamic objects.
Definition: BaseDynamicObject.h:28
FunctionsColl _functionsColl
collection of function identifiers sorted by processing data types
Definition: CudaFunctionSelector.h:92
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
DataTypeIdentifierColl DataTypeIdColl
data type identifier collection used by processing algorithm
Definition: CudaFunctionSelector.h:39
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
CudaFunctionIdentifier FunctionId
algorithm function identifier type used by processing algorithm
Definition: CudaFunctionSelector.h:36
std::map< DataTypeIdColl, FunctionId > FunctionsColl
function identifiers sorted by data types
Definition: CudaFunctionSelector.h:89
Class allowing to identify a processing function.
Definition: CudaFunctionIdentifier.h:34
Definition of import/export macro for library.
#define IPSDK_DECLARE_DYNAMIC_WITH_COPY(libraryName, className)
macro enabling dynamic properties on class and copy support
Definition: DynamicHdrMacro.h:83
Class used for data type collection function identification.
Definition: DataTypeIdentifierColl.h:34
BoolResult(BaseGpuProcessingAlgorithm::* FunctionType)(void)
function type associated to object
Definition: CudaFunctionIdentifier.h:45
Definition: CudaFunctionSelector.h:28