16 #ifndef __IPSDKIMAGEPROCESSING_IPENUMATTRIBUTEHDRMACROS_H__ 17 #define __IPSDKIMAGEPROCESSING_IPENUMATTRIBUTEHDRMACROS_H__ 21 #include <IPSDKImageProcessing/Attribute/IPEnum/IPEnumAttribute.h> 23 #include <boost/thread/lock_guard.hpp> 24 #include <boost/smart_ptr/make_shared_object.hpp> 33 #define IPSDK_DECLARE_IPENUM_ATTRIBUTE_BODY(libraryName, className, EnumType, \ 35 IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className) \ 36 IPSDK_DECLARE_TOOLTIP() \ 37 IPSDK_DECLARE_ATTRIBUTE_BASE_BODY(libraryName, className, RuleString) \ 43 EnumType getValue() const; \ 44 void init(const EnumType& value); \ 46 bool checkEnumValue(ipsdk::ipUInt32 enumValue) const; 56 #define IPSDK_DECLARE_INPUT_IPENUM_ATTRIBUTE(libraryName, className, EnumType, \ 58 class IPSDK_LIB_API(libraryName) className : \ 59 public ipsdk::imaproc::IPEnumAttribute<EnumType> { \ 60 IPSDK_DECLARE_IPENUM_ATTRIBUTE_BODY(libraryName, className, EnumType,RuleString) \ 61 IPSDK_DECLARE_MANDATORY_DATA(); \ 72 #define IPSDK_DECLARE_INPUT_OPTIONAL_IPENUM_ATTRIBUTE(libraryName, className, EnumType, \ 73 RuleString, defaultValue) \ 74 class IPSDK_LIB_API(libraryName) className : \ 75 public ipsdk::imaproc::IPEnumAttribute<EnumType> { \ 76 IPSDK_DECLARE_IPENUM_ATTRIBUTE_BODY(libraryName, className, EnumType, RuleString) \ 77 IPSDK_DECLARE_OPTIONAL_DATA(); \ 79 inline const ValueType& getDefaultValue() const \ 81 return retrieveDefaultValue(); \ 84 static inline const ValueType& retrieveDefaultValue() \ 86 boost::lock_guard<boost::mutex> lock(getMutex()); \ 87 static ValueType g_defaultValue = defaultValue; \ 88 return g_defaultValue; \ 95 #endif // __IPSDKIMAGEPROCESSING_IPENUMATTRIBUTEHDRMACROS_H__
Definition of import/export macro for library.
Header part of macros set for attribute class declaration.