IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
PythonAlignedPlanStorage.h
1 // PythonAlignedPlanStorage.h:
3 // --------------------
4 //
14 
15 #ifndef __IPSDKIMAGE_PYTHONALIGNEDPLANSTORAGE_H__
16 #define __IPSDKIMAGE_PYTHONALIGNEDPLANSTORAGE_H__
17 
19 #include <IPSDKImage/Storage/BasePlanStorage.h>
20 #include <IPSDKBaseData/Buffer/ExternalBuffer.h>
22 
23 // suppression warnings
24 // warning C4251: 'ipsdk::image::DiskPlanStorage::_pPythonImageAccessor' : class 'boost::shared_ptr<ipsdk::python::PythonImageAccessor>' needs to have dll-interface to be used by clients of class 'ipsdk::image::PythonAlignedPlanStorage'
25 #pragma warning (push)
26 #pragma warning (disable : 4251)
27 
28 namespace ipsdk {
29 namespace python {
30 
33 
35 {
36  // declare dynamic serializable class
38 
39 public:
45 
46 // methods
47 public:
49  image::ePlanStorageType getPlanStorageType() const;
50 
52  void init(PythonImageAccessorPtr& pPythonImageAccessor,
53  ipUInt64 zPlanIdx,
54  ipUInt64 cPlanIdx,
55  ipUInt64 tPlanIdx);
56 
59  const PythonImageAccessor& getPythonImageAccessor() const;
60 
63  ipUInt64 getZPlanIdx() const;
64 
67  ipUInt64 getCPlanIdx() const;
68 
71  ipUInt64 getTPlanIdx() const;
72 
75  image::eImageAccessMode getAccessMode() const;
76 
79  bool canBeRemotlyAccessed() const;
80 
84  bool hasBinary8BitsStorage() const;
85 
86 protected:
89  BoolResult resizePlan(const image::ImagePlanGeometry& planGeometry);
90 
93  BoolResult readRawData(const ipUInt64 startOffset,
94  const ipUInt64 size,
95  void* pData) const;
96 
101  BoolResult writeRawData(const ipUInt64 startOffset,
102  const ipUInt64 size,
103  const void* pData);
104 
106  void clearPlanData();
107 
108 // attributes
109 protected:
111  PythonImageAccessorPtr _pPythonImageAccessor;
112 
115 
118 
121 };
122 
125 
128 {
130 }
131 
134 
135 } // end of namespace python
136 } // end of namespace ipsdk
137 
138 #pragma warning (pop)
139 
140 #endif // __IPSDKIMAGE_PYTHONALIGNEDPLANSTORAGE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
ipUInt64 _cPlanIdx
c plan index for plan in full image
Definition: PythonAlignedPlanStorage.h:117
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
specific plan storage for dedicated task
Definition: PlanStorageTypes.h:47
#define PYIPSDKBASE_API
Import/Export macro for library PyIPSDKBase.
Definition: PyIPSDKBaseExports.h:25
Class encapsulating python image plan data with data alignment.
Definition: PythonAlignedPlanStorage.h:34
Base class for image plan data storage.
Definition: BasePlanStorage.h:38
ipUInt64 _tPlanIdx
t plan index for plan in full image
Definition: PythonAlignedPlanStorage.h:120
PythonImageAccessorPtr _pPythonImageAccessor
pointer to image file accessor
Definition: PythonAlignedPlanStorage.h:111
Definition: PythonImageAccessor.h:29
#define IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:79
ipUInt64 _zPlanIdx
z plan index for plan in full image
Definition: PythonAlignedPlanStorage.h:114
Class encapsulating image plan geometry.
Definition: ImagePlanGeometry.h:33
ePlanStorageType
Enumerate describing plan storage type.
Definition: PlanStorageTypes.h:33
Definition of import/export macro for library.
eImageAccessMode
Image access mode.
Definition: ImageTypes.h:110
image::ePlanStorageType getPlanStorageType() const
retrieve plan storage type
Definition: PythonAlignedPlanStorage.h:127