IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
MultiFileDiskImageAccessor.h
1 // MultiFileDiskImageAccessor.h:
3 // ---------------
4 //
13 
14 #ifndef __IPSDKIMAGE_MULTIFILEDISKIMAGEACCESSOR_H__
15 #define __IPSDKIMAGE_MULTIFILEDISKIMAGEACCESSOR_H__
16 
17 // suppression warnings
18 // warning C4251: 'ipsdk::image::file::RawImageFile::_stream' : class 'std::basic_fstream<_Elem,_Traits>' needs to have dll-interface to be used by clients of class 'ipsdk::image::file::RawImageFile'
19 #pragma warning (push)
20 #pragma warning (disable : 4251)
21 
23 #include <IPSDKImage/Accessor/BaseDiskImageAccessor.h>
24 #include <boost/tuple/tuple.hpp>
25 #include <boost/shared_ptr.hpp>
26 #include <boost/thread/mutex.hpp>
27 #include <boost/thread/thread.hpp>
28 #include <fstream>
29 #include <map>
30 #include <vector>
31 
32 namespace ipsdk {
33 namespace image {
34 
37 
39 {
40  // declare serial class
42 
43 public:
49 
50 // methods
51 public:
55  bool hasBinary8BitsStorage() const;
56 
59  BoolResult init(const PlanStorageColl3d& imagePlans);
60 
61 protected:
62 
65  BoolResult resizeData(const BaseImageGeometry& geometry);
66 
74  BoolResult readRawData(const ipUInt64 zPlanIdx,
75  const ipUInt64 cPlanIdx,
76  const ipUInt64 tPlanIdx,
77  const ipUInt64 pixelStartOffset,
78  const ipUInt64 nbPixels,
79  void* pData) const;
80 
88  BoolResult writeRawData(const ipUInt64 zPlanIdx,
89  const ipUInt64 cPlanIdx,
90  const ipUInt64 tPlanIdx,
91  const ipUInt64 pixelStartOffset,
92  const ipUInt64 nbPixels,
93  const void* pData);
94 
96  void clearDerived();
97 
98 // attributes
99 protected:
102 
104  mutable boost::mutex _mutex;
105 };
106 
109 
110 } // end of namespace image
111 } // end of namespace ipsdk
112 
113 #pragma warning (pop)
114 
115 #endif // __IPSDKIMAGE_MULTIFILEDISKIMAGEACCESSOR_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
PlanStorageColl3d _imagePlans
Image Plan storage collection.
Definition: MultiFileDiskImageAccessor.h:101
Base class for image files accessors.
Definition: BaseDiskImageAccessor.h:31
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for image geometry.
Definition: BaseImageGeometry.h:38
IPSDKIMAGE_API ImageGeometryPtr geometry(const eImageBufferType &imageBufferType, const ipUInt64 sizeX, const ipUInt64 sizeY, const VolumeGeometry &volumeGeometry, const ColorGeometry &colorGeometry, const TemporalGeometry &temporalGeometry)
create an image geometry
#define IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:79
Definition of import/export macro for library.
std::vector< PlanStorageColl2d > PlanStorageColl3d
Definition: ImageTypes.h:196
#define IPSDKIMAGE_API
Import/Export macro for library IPSDKImage.
Definition: IPSDKImageExports.h:27
Definition: MultiFileDiskImageAccessor.h:38
boost::mutex _mutex
mutex used for protection against thread concurrent accesses
Definition: MultiFileDiskImageAccessor.h:104