IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageYStripSeq2dSplit.h
1 // BaseImageYStripSeq2dSplit.h:
3 // ----------------------------
4 //
15 
16 #ifndef __IPSDKIMAGEPROCESSING_BASEIMAGEYSTRIPSEQ2DSPLIT_H__
17 #define __IPSDKIMAGEPROCESSING_BASEIMAGEYSTRIPSEQ2DSPLIT_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::imaproc::BaseImageYStripSeq2dSplit<InputDataType,OutputDataType>::_stripParsingDirection' : class 'ipsdk::image::eStripParsingDirection' needs to have dll-interface to be used by clients of class 'ipsdk::imaproc::BaseImageYStripSeq2dSplit<InputDataType,OutputDataType>'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
24 #include <IPSDKImageProcessing/DataSplit/Strip/BaseImageStripSplit.h>
25 
26 namespace ipsdk {
27 namespace imaproc {
28 
31 
32 template <typename InputDataType, typename OutputDataType>
34 {
35 // predefined public types
36 public:
38  typedef OutputDataType OutputType;
39 
40 public:
44  virtual ~BaseImageYStripSeq2dSplit() = 0;
46 
47 // methods
48 public:
51  {
53  }
54 
59  const image::eStripAllocationType& getStripAllocationType() const;
60 
65  const image::eStripParsingDirection& getStripParsingDirection() const;
66 
67 protected:
70  virtual BoolResult processAttribute(processor::BaseProcessor& processor,
71  const boost::shared_ptr<OutputDataType>& pImageYStripSeq2d) = 0;
72 
78  void initBase(const boost::shared_ptr<InputDataType>& pImage,
79  const image::eStripAllocationType& stripAllocationType,
80  const image::eStripParsingDirection& stripParsingDirection);
81 
82 private:
86  BoolResult processAttribute(processor::BaseProcessor& processor,
87  const ipUInt64 elementsStartIndex,
88  const ipUInt64 nbElements,
89  const core::BaseRequestOrigin& requestOrigin);
90 
91 // attributes
92 private:
94  image::eStripParsingDirection _stripParsingDirection;
95 
97  image::eStripAllocationType _stripAllocationType;
98 };
99 
102 
103 } // end of namespace imaproc
104 } // end of namespace ipsdk
105 
106 #pragma warning (pop)
107 
108 #endif // __IPSDKIMAGEPROCESSING_BASEIMAGEYSTRIPSEQ2DSPLIT_H__
Split operation generating sequence image 2d strip with splitting along Y axis.
Definition: ImageStripSplitTypes.h:47
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for split operation generating sequence image y strips 2d.
Definition: BaseImageYStripSeq2dSplit.h:33
Base class for processor class.
Definition: BaseProcessor.h:43
eStripAllocationType
Enumerate describing image strip allocation policy.
Definition: ImageStripTypes.h:88
#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
eImageStripSplitType getImageStripSplitType() const
retrieve image strip split operation type
Definition: BaseImageYStripSeq2dSplit.h:50
Base class for image strip split operations for data dispatch.
Definition: BaseImageStripSplit.h:35
OutputDataType OutputType
output data type for split operation
Definition: BaseImageYStripSeq2dSplit.h:38