IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
StripParserInfoHdrMacros.h
Go to the documentation of this file.
1 // StripParserInfoHdrMacros.h:
3 // ---------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_STRIPPARSERINFOHDRMACROS_H__
16 #define __IPSDKIMAGEPROCESSING_STRIPPARSERINFOHDRMACROS_H__
17 
19 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineXStrip2d/LineXStrip2dParser.h>
20 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineXStrip2dWithKernel/LineXStrip2dWithKernelParser.h>
21 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStrip2d/LineYStrip2dParser.h>
22 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStripColor2d/LineYStripUserColor2dParser.h>
23 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStripColor2d/LineYStripRgbColor2dParser.h>
24 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStripSeq2d/LineYStripSeq2dParser.h>
25 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineYStrip2dWithKernel/LineYStrip2dWithKernelParser.h>
26 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStrip3d/LineZStrip3dParser.h>
27 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStrip3dWithKernel/LineZStrip3dWithKernelParser.h>
28 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStripColor3d/LineZStripRgbColor3dParser.h>
29 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/LineZStripColor3d/LineZStripUserColor3dParser.h>
30 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStrip2d/RawYStrip2dParser.h>
31 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStrip3d/RawYStrip3dParser.h>
32 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStripColor2d/RawYStripRgbColor2dParser.h>
33 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStripColor2d/RawYStripUserColor2dParser.h>
34 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawYStripSeq2d/RawYStripSeq2dParser.h>
35 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/RawZStrip3d/RawZStrip3dParser.h>
36 #include <boost/make_shared.hpp>
37 
38 namespace ipsdk {
39  namespace imaproc {
40  template <typename StripParserMode, typename BaseStripAttributeClassType, typename DelayImpl = BaseStripAttributeClassType>
42  }
43 }
44 
47 
50 #define IPSDK_STRIP_PARSER_INFO(StripParserMode, BaseStripAttributeClass, BaseParserClass, ConcreteParserClass) \
51 class BaseStripAttributeClass; \
52 template <typename DelayImpl> \
53 struct StripParserInfo<StripParserMode, BaseStripAttributeClass, DelayImpl> \
54 { \
55  typedef boost::shared_ptr<DelayImpl> AttributePtr; \
56  typedef BaseParserClass<DelayImpl> BaseParserType; \
57  typedef boost::shared_ptr<BaseParserType> ParserTypePtr; \
58  static ParserTypePtr createParser(const AttributePtr& pAttribute) \
59  { \
60  ParserTypePtr pParser; \
61  switch (pAttribute->getImageBufferType().value()) \
62  { \
63  case ipsdk::image::eImageBufferType::eIBT_UInt8 : { \
64  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_UInt8>::type DataType; \
65  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
66  pParser = boost::make_shared<ParserType>(); \
67  pParser->init(pAttribute->getStorage()); \
68  break; \
69  } \
70  case ipsdk::image::eImageBufferType::eIBT_Int8 : { \
71  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Int8>::type DataType; \
72  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
73  pParser = boost::make_shared<ParserType>(); \
74  pParser->init(pAttribute->getStorage()); \
75  break; \
76  } \
77  case ipsdk::image::eImageBufferType::eIBT_UInt16 : { \
78  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_UInt16>::type DataType; \
79  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
80  pParser = boost::make_shared<ParserType>(); \
81  pParser->init(pAttribute->getStorage()); \
82  break; \
83  } \
84  case ipsdk::image::eImageBufferType::eIBT_Int16 : { \
85  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Int16>::type DataType; \
86  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
87  pParser = boost::make_shared<ParserType>(); \
88  pParser->init(pAttribute->getStorage()); \
89  break; \
90  } \
91  case ipsdk::image::eImageBufferType::eIBT_UInt32 : { \
92  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_UInt32>::type DataType; \
93  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
94  pParser = boost::make_shared<ParserType>(); \
95  pParser->init(pAttribute->getStorage()); \
96  break; \
97  } \
98  case ipsdk::image::eImageBufferType::eIBT_Int32 : { \
99  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Int32>::type DataType; \
100  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
101  pParser = boost::make_shared<ParserType>(); \
102  pParser->init(pAttribute->getStorage()); \
103  break; \
104  } \
105  case ipsdk::image::eImageBufferType::eIBT_Real32 : { \
106  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Real32>::type DataType; \
107  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
108  pParser = boost::make_shared<ParserType>(); \
109  pParser->init(pAttribute->getStorage()); \
110  break; \
111  } \
112  case ipsdk::image::eImageBufferType::eIBT_Binary : { \
113  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Binary>::type DataType; \
114  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
115  pParser = boost::make_shared<ParserType>(); \
116  pParser->init(pAttribute->getStorage()); \
117  break; \
118  } \
119  case ipsdk::image::eImageBufferType::eIBT_Label16 : { \
120  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Label16>::type DataType; \
121  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
122  pParser = boost::make_shared<ParserType>(); \
123  pParser->init(pAttribute->getStorage()); \
124  break; \
125  } \
126  case ipsdk::image::eImageBufferType::eIBT_Label32 : { \
127  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Label32>::type DataType; \
128  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
129  pParser = boost::make_shared<ParserType>(); \
130  pParser->init(pAttribute->getStorage()); \
131  break; \
132  } \
133  case ipsdk::image::eImageBufferType::eIBT_Label8 : { \
134  typedef ipsdk::image::ImageType2Buffer<ipsdk::image::eImageBufferType::eIBT_Label8>::type DataType; \
135  typedef ConcreteParserClass<DataType, BaseStripAttributeClass> ParserType; \
136  pParser = boost::make_shared<ParserType>(); \
137  pParser->init(pAttribute->getStorage()); \
138  break; \
139  } \
140  } \
141  return pParser; \
142  } \
143 };
144 
145 namespace ipsdk {
146 namespace imaproc {
147 
150 
151 // case of line XStrip2d parsing
153 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputXStrip2dAttribute, BaseLineXStrip2dParser, LineXStrip2dParser);
154 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutXStrip2dAttribute, BaseLineXStrip2dParser, LineXStrip2dParser);
155 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputXStrip2dAttribute, BaseLineXStrip2dParser, LineXStrip2dParser);
157 
158 // case of line XStrip2dWithKernel parsing
160 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputXStrip2dWithKernelAttribute, BaseLineXStrip2dWithKernelParser, LineXStrip2dWithKernelParser);
161 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutXStrip2dWithKernelAttribute, BaseLineXStrip2dWithKernelParser, LineXStrip2dWithKernelParser);
162 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputXStrip2dWithKernelAttribute, BaseLineXStrip2dWithKernelParser, LineXStrip2dWithKernelParser);
164 
165 // case of raw YStrip2d parsing
167 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputYStrip2dAttribute, BaseRawYStrip2dParser, RawYStrip2dParser);
168 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutYStrip2dAttribute, BaseRawYStrip2dParser, RawYStrip2dParser);
169 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputYStrip2dAttribute, BaseRawYStrip2dParser, RawYStrip2dParser);
171 
172 // case of line YStrip2d parsing
174 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputYStrip2dAttribute, BaseLineYStrip2dParser, LineYStrip2dParser);
175 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutYStrip2dAttribute, BaseLineYStrip2dParser, LineYStrip2dParser);
176 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputYStrip2dAttribute, BaseLineYStrip2dParser, LineYStrip2dParser);
178 
179 // case of line YStrip2dWithKernel parsing
181 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputYStrip2dWithKernelAttribute, BaseLineYStrip2dWithKernelParser, LineYStrip2dWithKernelParser);
182 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutYStrip2dWithKernelAttribute, BaseLineYStrip2dWithKernelParser, LineYStrip2dWithKernelParser);
183 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputYStrip2dWithKernelAttribute, BaseLineYStrip2dWithKernelParser, LineYStrip2dWithKernelParser);
185 
186 // case of raw YStrip3d parsing
188 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputYStrip3dAttribute, BaseRawYStrip3dParser, RawYStrip3dParser);
189 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutYStrip3dAttribute, BaseRawYStrip3dParser, RawYStrip3dParser);
190 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputYStrip3dAttribute, BaseRawYStrip3dParser, RawYStrip3dParser);
192 
193 // case of line YStripColor2d parsing
195 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputYStripColor2dAttribute, BaseLineYStripUserColor2dParser, LineYStripUserColor2dParser);
196 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutYStripColor2dAttribute, BaseLineYStripUserColor2dParser, LineYStripUserColor2dParser);
197 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputYStripColor2dAttribute, BaseLineYStripUserColor2dParser, LineYStripUserColor2dParser);
199 
200 // case of rgb line YStripColor2d parsing
202 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseInputYStripColor2dAttribute, BaseLineYStripRgbColor2dParser, LineYStripRgbColor2dParser);
203 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseInOutYStripColor2dAttribute, BaseLineYStripRgbColor2dParser, LineYStripRgbColor2dParser);
204 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseOutputYStripColor2dAttribute, BaseLineYStripRgbColor2dParser, LineYStripRgbColor2dParser);
206 
207 // case of raw YStripColor2d parsing
209 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputYStripColor2dAttribute, BaseRawYStripUserColor2dParser, RawYStripUserColor2dParser);
210 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutYStripColor2dAttribute, BaseRawYStripUserColor2dParser, RawYStripUserColor2dParser);
211 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputYStripColor2dAttribute, BaseRawYStripUserColor2dParser, RawYStripUserColor2dParser);
213 
214 // case of rgb raw YStripColor2d parsing
216 IPSDK_STRIP_PARSER_INFO(RgbRawStripParserMode, BaseInputYStripColor2dAttribute, BaseRawYStripRgbColor2dParser, RawYStripRgbColor2dParser);
217 IPSDK_STRIP_PARSER_INFO(RgbRawStripParserMode, BaseInOutYStripColor2dAttribute, BaseRawYStripRgbColor2dParser, RawYStripRgbColor2dParser);
218 IPSDK_STRIP_PARSER_INFO(RgbRawStripParserMode, BaseOutputYStripColor2dAttribute, BaseRawYStripRgbColor2dParser, RawYStripRgbColor2dParser);
220 
221 // case of line YStripSeq2d parsing
223 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputYStripSeq2dAttribute, BaseLineYStripSeq2dParser, LineYStripSeq2dParser);
224 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutYStripSeq2dAttribute, BaseLineYStripSeq2dParser, LineYStripSeq2dParser);
225 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputYStripSeq2dAttribute, BaseLineYStripSeq2dParser, LineYStripSeq2dParser);
226 
227 // case of raw YStripSeq2d parsing
229 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputYStripSeq2dAttribute, BaseRawYStripSeq2dParser, RawYStripSeq2dParser);
230 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutYStripSeq2dAttribute, BaseRawYStripSeq2dParser, RawYStripSeq2dParser);
231 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputYStripSeq2dAttribute, BaseRawYStripSeq2dParser, RawYStripSeq2dParser);
233 
234 // case of raw ZStrip3d parsing
236 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInputZStrip3dAttribute, BaseRawZStrip3dParser, RawZStrip3dParser);
237 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseInOutZStrip3dAttribute, BaseRawZStrip3dParser, RawZStrip3dParser);
238 IPSDK_STRIP_PARSER_INFO(RawStripParserMode, BaseOutputZStrip3dAttribute, BaseRawZStrip3dParser, RawZStrip3dParser);
240 
241 // case of line ZStrip3d parsing
243 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputZStrip3dAttribute, BaseLineZStrip3dParser, LineZStrip3dParser);
244 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutZStrip3dAttribute, BaseLineZStrip3dParser, LineZStrip3dParser);
245 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputZStrip3dAttribute, BaseLineZStrip3dParser, LineZStrip3dParser);
247 
248 // case of line ZStripColor3d parsing
250 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputZStripColor3dAttribute, BaseLineZStripUserColor3dParser, LineZStripUserColor3dParser);
251 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutZStripColor3dAttribute, BaseLineZStripUserColor3dParser, LineZStripUserColor3dParser);
252 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputZStripColor3dAttribute, BaseLineZStripUserColor3dParser, LineZStripUserColor3dParser);
254 
255 // case of rgb line ZStripColor3d parsing
257 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseInputZStripColor3dAttribute, BaseLineZStripRgbColor3dParser, LineZStripRgbColor3dParser);
258 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseInOutZStripColor3dAttribute, BaseLineZStripRgbColor3dParser, LineZStripRgbColor3dParser);
259 IPSDK_STRIP_PARSER_INFO(RgbLineStripParserMode, BaseOutputZStripColor3dAttribute, BaseLineZStripRgbColor3dParser, LineZStripRgbColor3dParser);
261 
262 // case of line ZStrip3dWithKernel parsing
264 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInputZStrip3dWithKernelAttribute, BaseLineZStrip3dWithKernelParser, LineZStrip3dWithKernelParser);
265 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseInOutZStrip3dWithKernelAttribute, BaseLineZStrip3dWithKernelParser, LineZStrip3dWithKernelParser);
266 IPSDK_STRIP_PARSER_INFO(LineStripParserMode, BaseOutputZStrip3dWithKernelAttribute, BaseLineZStrip3dWithKernelParser, LineZStrip3dWithKernelParser);
268 
271 
272 } // end of namespace imaproc
273 } // end of namespace ipsdk
274 
275 #endif // __IPSDKIMAGEPROCESSING_STRIPPARSERINFOHDRMACROS_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDK_STRIP_PARSER_INFO(StripParserMode, BaseStripAttributeClass, BaseParserClass, ConcreteParserClass)
[Internal] macro allowing to define a strip parser information structure
Definition: StripParserInfoHdrMacros.h:50
Definition: StripParserInfoHdrMacros.h:41
Definition of structures allowing to set strip parser mode.