IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseFragBuffer.h
1 // BaseFragBuffer.h:
3 // -----------------
4 //
14 
15 #ifndef __IPSDKBASEDATA_BASEFRAGBUFFER_H__
16 #define __IPSDKBASEDATA_BASEFRAGBUFFER_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::BaseFragBuffer::_bufferPtrColl' : class 'std::vector<_Ty>' needs to have dll-interface to be used by clients of class 'ipsdk::BaseFragBuffer'
20 #pragma warning (push)
21 #pragma warning (disable : 4275 4251)
22 
23 #include <IPSDKBaseData/Buffer/BaseBuffer.h>
24 #include <vector>
25 
26 namespace ipsdk {
27 
30 
32 {
33  // declare dynamic class
35 
36 public:
40  virtual ~BaseFragBuffer() = 0;
42 
43 // methods
44 public:
48  ipUInt64 getNbFragments() const;
49 
53  ipUInt64 getFragmentsSize() const;
54 
58  const BufferPtrColl& getBufferPtrColl() const;
59 
64  const void* getDataPtr(const ipUInt64 fragmentIndex) const;
65  void* getDataPtr(const ipUInt64 fragmentIndex);
67 
74  const void* getDataPtr(const ipUInt64 fragmentIndex,
75  const ipUInt64 offset) const;
76  void* getDataPtr(const ipUInt64 fragmentIndex,
77  const ipUInt64 offset);
79 
88  void rollUpFragments();
89 
98  void rollDownFragments();
99 
100 
101 protected:
105  void initBase(const eDataType& dataType,
106  const BufferPtrColl& bufferPtrColl,
107  const ipUInt64 fragmentsSize);
108 
112  void setDataPtr(const ipUInt64 fragmentIndex,
113  void* pData);
114 
116  virtual void clearDerived();
117 
118 // attributes
119 private:
121  BufferPtrColl _bufferPtrColl;
122 
124  ipUInt64 _fragmentsSize;
125 };
126 
129 
130 } // end of namespace ipsdk
131 
132 #pragma warning (pop)
133 
134 #endif // __IPSDKBASEDATA_BASEFRAGBUFFER_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
#define IPSDK_DECLARE_ABSTRACT_DYNAMIC_WITHOUT_COPY(libraryName, className)
macro enabling dynamic properties on abstract class and disabling copy support
Definition: DynamicHdrMacro.h:102
Base class for fragmented buffers.
Definition: BaseFragBuffer.h:31
eDataType
Enumerate describing a base type.
Definition: BaseTypes.h:77
Base class for buffer encapsulation.
Definition: BaseBuffer.h:34
#define IPSDKBASEDATA_API
Import/Export macro for library IPSDKUtil.
Definition: IPSDKBaseDataExports.h:27