File OpenVDSInterface.h

namespace OpenVDS

Typedefs

typedef struct VDS *VDSHandle

Functions

OpenVDSInterface &GetOpenVDSInterface(const char *version)
void SetOpenVDSInterface(OpenVDSInterface &openVDSInterface)
class OpenVDSInterface : public OpenVDS::OpenVDSVersioningInterface
#include <OpenVDSInterface.h>

The OpenVDS interface is used to provide a versioned entrypoint for the API with wrappers for standard types to ensure ABI compatibility.

Public Types

typedef void (*ErrorHandler)(Error *error, int errorCode, const char *errorMessage)
typedef void (*WaveletAdaptiveLevelsHandler)(std::vector<WaveletAdaptiveLevel> *waveletAdaptiveLevelsVector, float compressionTolerance, float compressionRatio, int64_t compressedSize)

Public Functions

virtual OpenOptions *CreateOpenOptions(StringWrapper url, StringWrapper connectionString, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual bool IsSupportedProtocol(StringWrapper url) = 0
virtual VDSHandle Open(StringWrapper url, StringWrapper connectionString, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual VDSHandle OpenWithAdaptiveCompressionTolerance(StringWrapper url, StringWrapper connectionString, float waveletAdaptiveTolerance, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual VDSHandle OpenWithAdaptiveCompressionRatio(StringWrapper url, StringWrapper connectionString, float waveletAdaptiveRatio, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual VDSHandle Open(const OpenOptions &options, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual VDSHandle Open(IOManager *ioManager, LogLevel logLevel, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual bool IsCompressionMethodSupported(CompressionMethod compressionMethod) = 0
virtual VDSHandle Create(StringWrapper url, StringWrapper connectionString, VolumeDataLayoutDescriptor const &layoutDescriptor, VectorWrapper<VolumeDataAxisDescriptor> axisDescriptors, VectorWrapper<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual VDSHandle Create(const OpenOptions &options, VolumeDataLayoutDescriptor const &layoutDescriptor, VectorWrapper<VolumeDataAxisDescriptor> axisDescriptors, VectorWrapper<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, VectorWrapper<VolumeDataAxisDescriptor> axisDescriptors, VectorWrapper<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, LogLevel logLevel, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual VolumeDataLayout *GetLayout(VDSHandle handle) = 0
virtual IVolumeDataAccessManager *GetAccessManagerInterface(VDSHandle handle) = 0
virtual MetadataWriteAccess *GetMetadataWriteAccessInterface(VDSHandle handle) = 0
virtual CompressionMethod GetCompressionMethod(VDSHandle handle) = 0
virtual float GetCompressionTolerance(VDSHandle handle) = 0
virtual void Close(VDSHandle handle, bool flush) = 0
virtual void Close(VDSHandle handle, bool flush, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual void RetryableClose(VDSHandle handle, bool flush) = 0
virtual void RetryableClose(VDSHandle handle, bool flush, ErrorHandler errorHandler, Error *error = nullptr) = 0
virtual GlobalState *GetGlobalState() = 0
virtual int64_t GetWaveletCompressedSize(VDSHandle handle) = 0
virtual int64_t GetWaveletUncompressedSize(VDSHandle handle) = 0
virtual void GetWaveletAdaptiveLevels(VDSHandle handle, WaveletAdaptiveLevelsHandler WaveletAdaptiveLevelsHandler, std::vector<WaveletAdaptiveLevel> *waveletAdaptiveLevelsVector) = 0

Protected Functions

inline OpenVDSInterface()
inline virtual ~OpenVDSInterface()
class OpenVDSVersioningInterface
#include <OpenVDSInterface.h>

The OpenVDS versioning interface is a stable base class for the OpenVDS global interface that can be used to check what version of the OpenVDS interface is provided.

Subclassed by OpenVDS::OpenVDSInterface

Public Functions

virtual const char *GetOpenVDSName() = 0
virtual const char *GetOpenVDSVersion() = 0
virtual void GetOpenVDSVersion(int &major, int &minor, int &patch) = 0
virtual const char *GetOpenVDSRevision() = 0

Protected Functions

inline OpenVDSVersioningInterface()
inline virtual ~OpenVDSVersioningInterface()
struct StringWrapper

Public Functions

inline StringWrapper()
inline StringWrapper(const std::string &toWrap)
template<size_t SIZE>
inline StringWrapper(const char (&toWrap)[SIZE])

Public Members

const char *data
size_t size
template<typename T>
struct VectorWrapper

Public Functions

inline VectorWrapper()
inline VectorWrapper(const std::vector<T> &toWrap)

Public Members

const T *data
size_t size