15 #ifndef __IPSDKBASEPROCESSING_ATTRIBUTEFACTORY_H__ 16 #define __IPSDKBASEPROCESSING_ATTRIBUTEFACTORY_H__ 21 #pragma warning (push) 22 #pragma warning (disable : 4275 4251) 27 #include <boost/noncopyable.hpp> 53 bool isRegistredAttribute(
const std::string& className)
const;
56 std::set<std::string> getRegistredAttributes()
const;
61 template <
typename AttributeType>
62 void registerAttribute();
67 template <
typename AttributeType>
68 void unRegisterAttribute();
73 const std::string& getAttributeName(
const std::string& className)
const;
78 const std::string& getAttributeToolTip(
const std::string& className)
const;
83 const std::string& getAttributeLibraryName(
const std::string& className)
const;
89 const boost::filesystem::path& getAttributeHeaderPath(
const std::string& className)
const;
94 AttributePtr createAttribute(
const std::string& className)
const;
120 void registerAttribute(
const std::string& className,
126 void unRegisterAttribute(
const std::string& className);
140 template <
typename AttributeType>
145 const std::string& className = AttributeType::getTypeName();
159 template <
typename AttributeType>
164 const std::string& className = AttributeType::getTypeName();
176 #pragma warning (pop) 178 #endif // __IPSDKBASEPROCESSING_ATTRIBUTEFACTORY_H__ Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
std::string _attributeName
attribute name
Definition: AttributeFactory.h:102
std::string _attributeLibraryName
attribute library name
Definition: AttributeFactory.h:108
Factory singleton allowing dynamic creation of registred attributes.
Definition: AttributeFactory.h:37
AttributeCreator _attributeCreator
attribute creation function
Definition: AttributeFactory.h:114
Predefined types for processing attributes managment.
Base types for multiplatform compatibility.
std::string _attributeToolTip
attribute tooltip
Definition: AttributeFactory.h:105
struct used to store attribute informations
Definition: AttributeFactory.h:99
boost::shared_ptr< BaseAttribute > AttributePtr
shared pointer to attribute
Definition: AttributeTypes.h:52
Definition of import/export macro for library.
boost::filesystem::path _attributeHeaderPath
attribute header path
Definition: AttributeFactory.h:111
AttributePtr(* AttributeCreator)()
attribute creator function
Definition: AttributeTypes.h:67
void unRegisterAttribute()
un register a previously registred attribute from factory
Definition: AttributeFactory.h:161
void registerAttribute()
register a new attribute into factory
Definition: AttributeFactory.h:142
FactoryMap _factoryMap
map storing string to attribute informations association
Definition: AttributeFactory.h:134
std::map< std::string, AttributeInfo > FactoryMap
map associating a class name to attribute informations
Definition: AttributeFactory.h:131