IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageXStrip2dSplit.h
1 // BaseImageXStrip2dSplit.h:
3 // -------------------------
4 //
14 
15 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGEXSTRIP2DSPLIT_H__
16 #define __IPSDKIMAGEPROCESSING_BASEIMAGEXSTRIP2DSPLIT_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::imaproc::BaseImageXStrip2dSplit<InputDataType,OutputDataType>::_stripParsingDirection' : class 'ipsdk::image::eStripParsingDirection' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageXStrip2dSplit<InputDataType,OutputDataType>'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImageProcessing/DataSplit/Strip/BaseImageStripSplit.h>
24 
25 namespace ipsdk {
26 namespace imaproc {
27 
30 
31 template <typename InputDataType, typename OutputDataType>
33 {
34 // predefined public types
35 public:
37  typedef OutputDataType OutputType;
38 
39 public:
43  virtual ~BaseImageXStrip2dSplit() = 0;
45 
46 // methods
47 public:
50  {
52  }
53 
58  const image::eStripAllocationType& getStripAllocationType() const;
59 
64  const image::eStripParsingDirection& getStripParsingDirection() const;
65 
66 protected:
69  virtual BoolResult processAttribute(processor::BaseProcessor& processor,
70  const boost::shared_ptr<OutputDataType>& pImageXStrip2d) = 0;
71 
77  void initBase(const boost::shared_ptr<InputDataType>& pImage,
78  const image::eStripAllocationType& stripAllocationType,
79  const image::eStripParsingDirection& stripParsingDirection);
80 
81 private:
85  BoolResult processAttribute(processor::BaseProcessor& processor,
86  const ipUInt64 elementsStartIndex,
87  const ipUInt64 nbElements,
88  const core::BaseRequestOrigin& requestOrigin);
89 
90 // attributes
91 private:
93  image::eStripParsingDirection _stripParsingDirection;
94 
96  image::eStripAllocationType _stripAllocationType;
97 };
98 
101 
102 } // end of namespace imaproc
103 } // end of namespace ipsdk
104 
105 #pragma warning (pop)
106 
107 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGEXSTRIP2DSPLIT_H__
Split operation generating image 2d strip with splitting along X axis.
Definition: ImageStripSplitTypes.h:35
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
OutputDataType OutputType
output data type for split operation
Definition: BaseImageXStrip2dSplit.h:37
Base class for processor class.
Definition: BaseProcessor.h:43
eStripAllocationType
Enumerate describing image strip allocation policy.
Definition: ImageStripTypes.h:88
eImageStripSplitType getImageStripSplitType() const
retrieve image strip split operation type
Definition: BaseImageXStrip2dSplit.h:49
#define IPSDKIMAGEPROCESSING_API
Import/Export macro for library IPSDKImageProcessing.
Definition: IPSDKImageProcessingExports.h:25
Base class for request origin description.
Definition: BaseRequestOrigin.h:28
eStripParsingDirection
Enumerate describing strip parsing direction.
Definition: ImageStripTypes.h:72
eImageStripSplitType
Enumerate describing image strip split type.
Definition: ImageStripSplitTypes.h:33
Base class for image strip split operations for data dispatch.
Definition: BaseImageStripSplit.h:35
Base class for split operation generating image x strips 2d.
Definition: BaseImageXStrip2dSplit.h:32