IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseRawYStripColor2dParser.h
1 // BaseRawYStripColor2dParser.h:
3 // -----------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASERAWYSTRIPCOLOR2DPARSER_H__
16 #define __IPSDKIMAGEPROCESSING_BASERAWYSTRIPCOLOR2DPARSER_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseRawYStripColor2dParser<BaseStripAttributeClassType>::_pImageYStripColor2d' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseRawYStripColor2dParser<BaseStripAttributeClassType>'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImageProcessing/Algorithm/Parser/Strip/BaseStripParser.h>
24 #include <IPSDKImage/Fragment/Strip/YStripColor2d/BaseImageYStripColor2d.h>
25 #include <boost/shared_ptr.hpp>
26 #include <boost/mpl/equal_to.hpp>
27 #include <boost/mpl/not_equal_to.hpp>
28 #include <boost/mpl/int.hpp>
29 #include <boost/mpl/if.hpp>
30 
31 namespace ipsdk {
32 namespace imaproc {
33 
34 class BaseInputYStrip2dAttribute;
35 class BaseInOutYStrip2dAttribute;
36 class BaseOutputYStrip2dAttribute;
37 
40 
41 template <typename BaseStripAttributeClassType>
43 {
44 // predefined public types
45 public:
47  static const eIOStatus::domain g_attributeIO = BaseStripAttributeClassType::g_dataIOStatus;
48 
50  typedef typename BaseStripAttributeClassType::ValueType ValueType;
51 
53  typedef typename BaseStripAttributeClassType::StorageType StorageType;
54 
56  typedef typename boost::mpl::if_<typename boost::mpl::equal_to<boost::mpl::int_<g_attributeIO>,
57  boost::mpl::int_<eIOStatus::eIOS_Input> >::type,
59  typename boost::mpl::if_<typename boost::mpl::equal_to<boost::mpl::int_<g_attributeIO>,
60  boost::mpl::int_<eIOStatus::eIOS_Output> >::type,
64 
65 public:
69  virtual ~BaseRawYStripColor2dParser() = 0;
71 
72 // methods
73 public:
76  {
78  }
79 
81  virtual image::eColorGeometryType getColorGeometryType() const = 0;
82 
88  void init(const StorageType& pImageYStripColor2d);
89 
94  virtual ipUInt64 getBufferSize() const = 0;
95 
99  ipUInt64 getSizeC() const;
100 
101 protected:
108  virtual const void* accessBuffer(const ipUInt64 cPlanIdx) const = 0;
109  virtual void* accessBuffer(const ipUInt64 cPlanIdx) = 0;
111 
113  virtual void clearDerived();
114 
115 // attributes
116 protected:
119 };
120 
123 
124 } // end of namespace imaproc
125 } // end of namespace ipsdk
126 
127 #pragma warning (pop)
128 
129 #endif // __IPSDKIMAGEPROCESSING_BASERAWYSTRIPCOLOR2DPARSER_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Y strip color 2d parser allowing raw data parsing.
Definition: StripParserTypes.h:52
eStripParserType getStripParserType() const
retrieve strip parser type
Definition: BaseRawYStripColor2dParser.h:75
eStripParserType
Enumerate describing strip parser type.
Definition: StripParserTypes.h:30
eColorGeometryType
Color geometry type.
Definition: GeometryComponentTypes.h:45
Base class for input image 2d strip with splitting along Y axis attributes.
Definition: BaseInputYStrip2dAttribute.h:32
BaseStripAttributeClassType::ValueType ValueType
value type associated to object
Definition: BaseRawYStripColor2dParser.h:50
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
boost::mpl::if_< typename boost::mpl::equal_to< boost::mpl::int_< g_attributeIO >, boost::mpl::int_< eIOStatus::eIOS_Input > >::type, BaseInputYStrip2dAttribute, typename boost::mpl::if_< typename boost::mpl::equal_to< boost::mpl::int_< g_attributeIO >, boost::mpl::int_< eIOStatus::eIOS_Output > >::type, BaseOutputYStrip2dAttribute, BaseInOutYStrip2dAttribute >::type >::type YStrip2dAttributeType
associated y strip 2d attribute
Definition: BaseRawYStripColor2dParser.h:63
BaseStripAttributeClassType::StorageType StorageType
storage type associated to object
Definition: BaseRawYStripColor2dParser.h:53
Base class for input and output image 2d strip with splitting along Y axis attributes.
Definition: BaseInOutYStrip2dAttribute.h:32
Base class for raw color y strip 2d parsing.
Definition: BaseRawYStripColor2dParser.h:42
Base class for output image 2d strip with splitting along Y axis attributes.
Definition: BaseOutputYStrip2dAttribute.h:32
Base class for objects allowing to parse strip attribute data.
Definition: BaseStripParser.h:27
StorageType _pImageYStripColor2d
shared pointer to y strip color 2d
Definition: BaseRawYStripColor2dParser.h:118