IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
StripAttributeHdrMacros.h
Go to the documentation of this file.
1 // StripAttributeHdrMacros.h:
3 // --------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_STRIPATTRIBUTEHDRMACROS_H__
16 #define __IPSDKIMAGEPROCESSING_STRIPATTRIBUTEHDRMACROS_H__
17 
20 
23 
26 #define IPSDK_DECLARE_STRIP_ATTRIBUTE_BODY(libraryName, className, baseClassName, RuleString) \
27  IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className); \
28  IPSDK_DECLARE_TOOLTIP(); \
29  IPSDK_DECLARE_ATTRIBUTE_BASE_BODY(libraryName, className, RuleString); \
30 public: \
31  typedef baseClassName BaseStripAttributeClassType; \
32 protected: \
33  className(); \
34 public: \
35  ~className();
36 
37 
40 #define IPSDK_DECLARE_STRIP_ATTRIBUTE(libraryName, className, baseClassName, RuleString) \
41 class IPSDK_LIB_API(libraryName) className : public baseClassName { \
42  IPSDK_DECLARE_STRIP_ATTRIBUTE_BODY(libraryName, className, baseClassName, RuleString)
43 
45 // Mandatory attributes
47 
50 #define IPSDK_DECLARE_INPUT_STRIP_ATTRIBUTE(stripType, libraryName, className, RuleString) \
51  IPSDK_DECLARE_STRIP_ATTRIBUTE(libraryName, className, \
52  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseInput, \
53  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, stripType)), \
54  Attribute), \
55  RuleString); \
56  IPSDK_DECLARE_MANDATORY_DATA(); \
57 };
58 
59 
62 #define IPSDK_DECLARE_INOUT_STRIP_ATTRIBUTE(stripType, libraryName, className, RuleString) \
63  IPSDK_DECLARE_STRIP_ATTRIBUTE(libraryName, className, \
64  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseInOut, \
65  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, stripType)), \
66  Attribute), \
67  RuleString); \
68  IPSDK_DECLARE_MANDATORY_DATA(); \
69 };
70 
73 #define IPSDK_DECLARE_OUTPUT_STRIP_ATTRIBUTE(stripType, libraryName, className, RuleString) \
74  IPSDK_DECLARE_STRIP_ATTRIBUTE(libraryName, className, \
75  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseOutput, \
76  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, stripType)), \
77  Attribute), \
78  RuleString); \
79  IPSDK_DECLARE_MANDATORY_DATA(); \
80 };
81 
83 // Optional attributes
85 
88 #define IPSDK_DECLARE_INPUT_OPTIONAL_STRIP_ATTRIBUTE(stripType, libraryName, className, RuleString) \
89  IPSDK_DECLARE_STRIP_ATTRIBUTE(libraryName, className, \
90  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseInput, \
91  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, stripType)), \
92  Attribute), \
93  RuleString); \
94  IPSDK_DECLARE_OPTIONAL_DATA(); \
95 };
96 
99 #define IPSDK_DECLARE_INOUT_OPTIONAL_STRIP_ATTRIBUTE(stripType, libraryName, className, RuleString) \
100  IPSDK_DECLARE_STRIP_ATTRIBUTE(libraryName, className, \
101  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseInOut, \
102  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, stripType)), \
103  Attribute), \
104  RuleString); \
105  IPSDK_DECLARE_OPTIONAL_DATA(); \
106 };
107 
110 #define IPSDK_DECLARE_OUTPUT_OPTIONAL_STRIP_ATTRIBUTE(stripType, libraryName, className, RuleString) \
111  IPSDK_DECLARE_STRIP_ATTRIBUTE(libraryName, className, \
112  BOOST_PP_CAT(BOOST_PP_CAT(ipsdk::imaproc::BaseOutput, \
113  BOOST_PP_CAT(IPSDK_BASECLASSNAME_, stripType)), \
114  Attribute), \
115  RuleString); \
116  IPSDK_DECLARE_OPTIONAL_DATA(); \
117 };
118 
121 
122 #endif // __IPSDKIMAGEPROCESSING_STRIPATTRIBUTEHDRMACROS_H__
Operators used to enable rules on image strips.
Header part of macros set for attribute class declaration.