IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseImageStrip.h
1 // BaseImageStrip.h:
3 // -----------------
4 //
14 
15 #ifndef __IPSDKIMAGE_BASEIMAGESTRIP_H__
16 #define __IPSDKIMAGE_BASEIMAGESTRIP_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::image::BaseImageStrip::_stripAllocationType' : class 'ipsdk::image::eStripAllocationType' needs to have dll-interface to be used by clients of class 'ipsdk::image::BaseImageStrip'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKImage/Fragment/BaseImageFragment.h>
25 
26 namespace ipsdk {
27 namespace image {
28 
29 struct ImageStripExtractor;
30 
33 
35 {
36  // declare serial class
38 
39 // predefined public types
40 public:
42  static const eImageFragmentType::domain g_imageFragmentType = eImageFragmentType::eIFT_ImageStrip;
43 
44 public:
48  virtual ~BaseImageStrip() = 0;
50 
51 // methods
52 public:
54  eImageFragmentType getImageFragmentType() const;
55 
57  virtual eImageStripType getImageStripType() const = 0;
58 
63  virtual const eImageBufferType& getBufferType() const = 0;
64 
67  virtual const ipUInt64 getFullStripSize() const = 0;
68 
71  virtual const ipUInt64 getPlanStripSize() const = 0;
72 
75  virtual const ipUInt64 getStripNbPlans() const = 0;
76 
79  const eStripAllocationType& getStripAllocationType() const;
80 
82  virtual ipBool fromDisk() const;
83 
84 protected:
86  void initBase(const DataIdentifierConstPtr& pImageIdentifier,
87  const DataItemMapConstPtr& pImageHeader,
88  const eStripAllocationType& stripAllocationType);
89 
90 // attributes
91 protected:
94 };
95 
98 
99 inline eImageFragmentType
101 {
102  return g_imageFragmentType;
103 }
104 
107 
108 } // end of namespace image
109 } // end of namespace ipsdk
110 
111 #pragma warning (pop)
112 
113 #endif // __IPSDKIMAGE_BASEIMAGESTRIP_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
static const eImageFragmentType::domain g_imageFragmentType
image strip type
Definition: BaseImageStrip.h:42
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
eImageFragmentType getImageFragmentType() const
retrieve image fragment type
Definition: BaseImageStrip.h:100
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
eStripAllocationType
Enumerate describing image strip allocation policy.
Definition: ImageStripTypes.h:88
Predefined types for image strips management.
Base class for image strip fragments.
Definition: BaseImageStrip.h:34
boost::shared_ptr< const DataItemMap > DataItemMapConstPtr
shared pointer to const DataItemMap
Definition: DataItemTypes.h:170
Base class for image fragments.
Definition: BaseImageFragment.h:39
eStripAllocationType _stripAllocationType
flag indicating used strip allocation type
Definition: BaseImageStrip.h:93
#define IPSDKIMAGE_API
Import/Export macro for library IPSDKImage.
Definition: IPSDKImageExports.h:27
bool ipBool
Base types definition.
Definition: BaseTypes.h:47
boost::shared_ptr< const DataIdentifier > DataIdentifierConstPtr
shared pointer to const data identifier
Definition: DataIdentifierTypes.h:31
eImageStripType
Enumerate describing image strip type.
Definition: ImageStripTypes.h:42
eImageFragmentType
Enumerate describing image fragment type.
Definition: ImageFragmentTypes.h:33
Image strip fragment.
Definition: ImageFragmentTypes.h:35
eImageBufferType
types associated to image buffers
Definition: ImageTypes.h:78