15 #ifndef __IPSDKBASEPROCESSING_PROCESSORFACTORY_H__ 16 #define __IPSDKBASEPROCESSING_PROCESSORFACTORY_H__ 21 #pragma warning (push) 22 #pragma warning (disable : 4275 4251) 27 #include <boost/noncopyable.hpp> 53 bool isRegistredProcessor(
const std::string& className)
const;
56 std::set<std::string> getRegistredProcessors()
const;
61 template <
typename ProcessorType>
62 void registerProcessor();
67 template <
typename ProcessorType>
68 void unRegisterProcessor();
73 const std::string& getProcessorName(
const std::string& className)
const;
78 const std::string& getProcessorToolTip(
const std::string& className)
const;
83 const std::string& getProcessorLibraryName(
const std::string& className)
const;
89 const boost::filesystem::path& getProcessorHeaderPath(
const std::string& className)
const;
94 ProcessorPtr createProcessor(
const std::string& className)
const;
120 void registerProcessor(
const std::string& className,
126 void unRegisterProcessor(
const std::string& className);
140 template <
typename ProcessorType>
145 const std::string& className = ProcessorType::getTypeName();
159 template <
typename ProcessorType>
164 const std::string& className = ProcessorType::getTypeName();
176 #pragma warning (pop) 178 #endif // __IPSDKBASEPROCESSING_PROCESSORFACTORY_H__ std::string _processorName
processor name
Definition: ProcessorFactory.h:102
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
boost::filesystem::path _processorHeaderPath
processor header path
Definition: ProcessorFactory.h:111
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
std::map< std::string, ProcessorInfo > FactoryMap
map associating a class name to processor informations
Definition: ProcessorFactory.h:131
void registerProcessor()
register a new processor into factory
Definition: ProcessorFactory.h:142
ProcessorCreator _processorCreator
processor creation function
Definition: ProcessorFactory.h:114
FactoryMap _factoryMap
map storing string to processor informations association
Definition: ProcessorFactory.h:134
std::string _processorToolTip
processor tooltip
Definition: ProcessorFactory.h:105
ProcessorPtr(* ProcessorCreator)()
processor creator function
Definition: ProcessorTypes.h:112
Predefined types for processor management.
struct used to store processor informations
Definition: ProcessorFactory.h:99
Base types for multiplatform compatibility.
std::string _processorLibraryName
processor library name
Definition: ProcessorFactory.h:108
void unRegisterProcessor()
un register a previously registred processor from factory
Definition: ProcessorFactory.h:161
Factory singleton allowing dynamic creation of registred processors.
Definition: ProcessorFactory.h:37
Definition of import/export macro for library.
boost::shared_ptr< BaseProcessor > ProcessorPtr
shared pointer to processor class
Definition: ProcessorTypes.h:106