IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
AttributeHdrMacros.h
Go to the documentation of this file.
1 // AttributeHdrMacros.h:
3 // ---------------------
4 //
14 
15 #ifndef __IPSDKBASEPROCESSING_ATTRIBUTEHDRMACROS_H__
16 #define __IPSDKBASEPROCESSING_ATTRIBUTEHDRMACROS_H__
17 
20 #include <boost/smart_ptr/make_shared_object.hpp>
21 
24 
27 #define IPSDK_DECLARE_ATTRIBUTE_BASE_BODY(libraryName, className, RuleString) \
28  IPSDK_DECLARE_OBJECT_BASE_INFO(libraryName, className); \
29  friend class ipsdk::processor::AttributeFactory; \
30  friend boost::shared_ptr<className> boost::make_shared<className>(); \
31 public: \
32  static boost::shared_ptr<className> createAttribute(); \
33 protected: \
34  static ipsdk::processor::AttributePtr createBaseAttribute(); \
35  ipsdk::processor::RulePtr createRule(const ipsdk::processor::AttributePtr& pBaseThis) const; \
36  inline static ipsdk::processor::RulePtr createRule(const boost::shared_ptr<className>& attribute) \
37  { \
38  return RuleString; \
39  }
40 
43 
44 #endif // __IPSDKBASEPROCESSING_ATTRIBUTEHDRMACROS_H__
Predefined operators for rules on optional attributes.
Macro allowing to manage object base informations.