File OpenVDS.h

Defines

JAVA_OPAQUE_CLASS(_name)
JAVA_OPAQUE_STRUCT(_name)
namespace OpenVDS

Enums

enum class WaveletAdaptiveMode

Values:

enumerator BestQuality

The best quality available data is loaded (this is the only setting which will load lossless data).

enumerator Tolerance

An adaptive level closest to the global compression tolerance is selected when loading wavelet compressed data.

enumerator Ratio

An adaptive level closest to the global compression ratio is selected when loading wavelet compressed data.

Functions

inline OpenOptions *CreateOpenOptions(std::string url, std::string connectionString, Error &error)

Create an OpenOptions struct from a url and connection string.

Parameters:
  • url – The url scheme specific to each cloud provider Available schemes are s3:// azure://

  • connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

This function news a OpenOptions struct that has to be deleted by the caller. This is a helper function to allow applications modify the OpenOption before passing it to Open. Use the Open and Create functions with url and string instead if this is not needed.

inline bool IsSupportedProtocol(std::string url)

Verifies that the url is a supported protocol.

Returns:

Returnes true if the protocol specifier of the url is recognised by OpenVDS, otherwise returns false

inline VDSHandle Open(std::string url, std::string connectionString, Error &error)

Open an existing VDS.

Parameters:
  • url – The url scheme specific to each cloud provider Available schemes are s3:// azure://

  • connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle OpenWithAdaptiveCompressionTolerance(std::string url, std::string connectionString, float waveletAdaptiveTolerance, Error &error)

Open an existing VDS with adaptive compression tolerance.

Parameters:
  • url – The url scheme specific to each cloud provider Available schemes are s3:// azure://

  • connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider

  • waveletAdaptiveTolerance – Wavelet adaptive tolerance. This will try to read the dataset as-if it was compressed with the given tolerance even if it was compressed with a lower tolerance or lossless.

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle OpenWithAdaptiveCompressionRatio(std::string url, std::string connectionString, float waveletAdaptiveRatio, Error &error)

Open an existing VDS with adaptive compression ratio.

Parameters:
  • url – The url scheme specific to each cloud provider Available schemes are s3:// azure://

  • connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider

  • waveletAdaptiveRatio – Wavelet adaptive ratio. This will try to read the dataset as-if it was compressed with the given ratio even if it was compressed with a lower ratio or lossless. A compression ratio of 5.0 corresponds to compressed data which is 20% of the original.

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Open(std::string url, Error &error)

Open an existing VDS. This is a simple wrapper that uses an empty connectionString.

Parameters:
  • url – The url scheme specific to each cloud provider Available schemes are s3:// azure://

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Open(const OpenOptions &options, Error &error)

Open an existing VDS.

Parameters:
  • options – The options for the connection

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Open(IOManager *ioManager, Error &error)

Open an existing VDS.

Parameters:
  • ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Open(IOManager *ioManager, LogLevel logLevel, Error &error)

Open an existing VDS.

Parameters:
  • ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

  • logLevel – The logging threshold

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline bool IsCompressionMethodSupported(CompressionMethod compressionMethod)

Check if a compression method is supported. Not all compression methods might be supported when creating VDSs, and this method checks if a particular compression methods is supported by this implementation.

Parameters:

compressionMethod – The compression method to check

Returns:

True if the compression method is supported when creating VDSs with this implementation.

inline VDSHandle Create(std::string url, std::string connectionString, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, Error &error)

Create a new VDS.

Parameters:
  • url – The url scheme specific to each cloud provider Available schemes are s3:// azure://

  • connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider

  • compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

  • compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Create(std::string url, std::string connectionString, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, Error &error)

Create a new VDS.

Parameters:
  • url – The url scheme specific to each cloud provider Available schemes are s3:// azure://

  • connectionString – The cloud provider specific connection string Specifies additional arguments for the cloud provider

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Create(std::string url, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, Error &error)

Create a new VDS. This is a simple wrapper that uses an empty connectionString.

Parameters:
  • url – The url scheme specific to each cloud provider Available schemes are s3:// azure://

  • compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

  • compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Create(std::string url, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, Error &error)

Create a new VDS. This is a simple wrapper that uses an empty connectionString.

Parameters:
  • url – The url scheme specific to each cloud provider Available schemes are s3:// azure://

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Create(const OpenOptions &options, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, Error &error)

Create a new VDS.

Parameters:
  • options – The options for the connection

  • compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

  • compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Create(const OpenOptions &options, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, Error &error)

Create a new VDS.

Parameters:
  • options – The options for the connection

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, Error &error)

Create a new VDS.

Parameters:
  • ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

  • compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

  • compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, CompressionMethod compressionMethod, float compressionTolerance, LogLevel logLevel, Error &error)

Create a new VDS.

Parameters:
  • ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

  • compressionMethod – The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

  • compressionTolerance – This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, Error &error)

Create a new VDS.

Parameters:
  • ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VDSHandle Create(IOManager *ioManager, VolumeDataLayoutDescriptor const &layoutDescriptor, std::vector<VolumeDataAxisDescriptor> axisDescriptors, std::vector<VolumeDataChannelDescriptor> channelDescriptors, MetadataReadAccess const &metadata, LogLevel logLevel, Error &error)

Create a new VDS.

Parameters:
  • ioManager – The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

  • error – If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

inline VolumeDataLayout *GetLayout(VDSHandle handle)

Get the VolumeDataLayout for a VDS.

Parameters:

handle – The handle of the VDS

Returns:

The VolumeDataLayout of the VDS

inline IVolumeDataAccessManager *GetAccessManagerInterface(VDSHandle handle)

Get the VolumeDataAccessManagerInterface for a VDS.

Parameters:

handle – The handle of the VDS

Returns:

The VolumeDataAccessManagerInterface of the VDS

inline VolumeDataAccessManager GetAccessManager(VDSHandle handle)

Get the VolumeDataAccessManager for a VDS.

Parameters:

handle – The handle of the VDS

Returns:

The VolumeDataAccessManager of the VDS

inline MetadataWriteAccess *GetMetadataWriteAccessInterface(VDSHandle handle)

Get the MetadataWriteAccess interface for a VDS.

Parameters:

handle – The handle of the VDS

Returns:

The MetadataWriteAccess interface of the VDS

inline CompressionMethod GetCompressionMethod(VDSHandle handle)

Get the primary CompressionMethod for a VDS.

Parameters:

handle – The handle of the VDS

Returns:

The CompressionMethod used for the VDS

inline float GetCompressionTolerance(VDSHandle handle)

Get the primary compression tolerance used for a VDS.

Parameters:

handle – The handle of the VDS

Returns:

The compression tolerance used for the VDS

inline int64_t GetWaveletCompressedSize(VDSHandle handle)

Get the total wavelet compressed size (including lossless data) of the primary layer (first dimension group, channel 0, LOD 0) of a wavelet compressed dataset.

Parameters:

handle – The handle of the VDS

Returns:

The total wavelet compressed size (including lossless data) of the primary layer (first dimension group, channel 0, LOD 0)

inline int64_t GetWaveletUncompressedSize(VDSHandle handle)

Get the uncompressed size (not counting empty/constant value blocks) of the primary layer (first dimension group, channel 0, LOD 0) of a wavelet compressed dataset.

Parameters:

handle – The handle of the VDS

Returns:

The uncompressed size (not counting empty/constant value blocks) of the primary layer (first dimension group, channel 0, LOD 0)

inline std::vector<WaveletAdaptiveLevel> GetWaveletAdaptiveLevels(VDSHandle handle)

Get a list of the available wavelet adaptive levels for the VDS.

Parameters:

handle – The handle of the VDS

Returns:

The list of available wavelet adaptive levels

inline void Close(VDSHandle handle, bool flush = true)

Close a VDS and free up all associated resources. If an error occurs, an exception will be thrown.

Parameters:

handle – The handle of the VDS

inline void Close(VDSHandle handle, Error &error, bool flush = true)

Close a VDS and free up all associated resources.

Parameters:
  • handle – The handle of the VDS

  • error – If an error occured, the error code and message will be written to this output parameter

inline void RetryableClose(VDSHandle handle, bool flush = true)

Close a VDS and free up all associated resources if the close succeeds. If an error occurs, an exception will be thrown.

Parameters:

handle – The handle of the VDS

inline void RetryableClose(VDSHandle handle, Error &error, bool flush = true)

Close a VDS and free up all associated resources if the close succeeds.

Parameters:
  • handle – The handle of the VDS

  • error – If an error occured, the error code and message will be written to this output parameter

inline GlobalState *GetGlobalState()

Get the GlobalState interface.

Returns:

A pointer to the GlobalState interface

inline const char *GetOpenVDSName()

Get the name of the OpenVDS implementation.

Returns:

A null terminated string

inline const char *GetOpenVDSVersion()

Get the version for the OpenVDS implementation.

Returns:

A version string

inline const char *GetOpenVDSRevision()

Get revision of the OpenVDS build.

Returns:

A revision string

struct AWSOpenOptions : public OpenVDS::OpenOptions
#include <OpenVDS.h>

Options for opening a VDS in AWS.

Public Functions

inline AWSOpenOptions()
inline AWSOpenOptions(std::string const &bucket, std::string const &key, std::string const &region = std::string(), std::string const &endpointOverride = std::string(), int connectionTimeoutMs = 3000, int requestTimeoutMs = 6000, bool disableInitApi = false)

AWSOpenOptions constructor.

Parameters:
  • bucket – The bucket of the VDS

  • key – The key prefix of the VDS

  • region – The region of the bucket of the VDS

  • endpointOverride – This parameter allows to override the endpoint url

  • connectionTimeoutMs – This parameter allows to override the time a connection can spend on connecting to AWS

  • requestTimeoutMs – This paramter allows to override the time a request can take

Public Members

std::string bucket
std::string key
std::string region
std::string endpointOverride
std::string accessKeyId
std::string secretKey
std::string sessionToken
std::string expiration
int connectionTimeoutMs
int requestTimeoutMs
bool disableInitApi
struct AzureOpenOptions : public OpenVDS::OpenOptions
#include <OpenVDS.h>

Options for opening a VDS in Azure.

Public Functions

inline AzureOpenOptions()
inline AzureOpenOptions(std::string const &connectionString, std::string const &container, std::string const &blob)

AzureOpenOptions constructor.

Parameters:
  • connectionString – The connectionString for the VDS

  • container – The container of the VDS

  • blob – The blob prefix of the VDS

inline AzureOpenOptions(std::string const &connectionString, std::string const &container, std::string const &blob, int parallelism_factor, int max_execution_time)

AzureOpenOptions constructor.

Parameters:
  • connectionString – The connectionString for the VDS

  • container – The container of the VDS

  • blob – The blob prefix of the VDS

  • parallelism_factor – The parallelism factor setting for the Azure Blob Storage library

  • max_execution_time – The max execution time setting for the Azure Blob Storage library

Public Members

std::string connectionString
std::string accountName
std::string bearerToken
std::string container
std::string blob
int parallelism_factor = 4
int max_execution_time = 100000

Public Static Functions

static inline AzureOpenOptions AzureOpenOptionsBearer(std::string const &accountName, std::string const &bearerToken, std::string const &container, std::string const &blob)

AzureOpenOptions factory function for bearer token based authentication.

Parameters:
  • bearerToken – The bearer token

  • container – The container of the VDS

  • blob – The blob prefix of the VDS

Returns:

A valid AzureOpenOptions

struct AzurePresignedOpenOptions : public OpenVDS::OpenOptions
#include <OpenVDS.h>

Options for opening a VDS with presigned Azure url.

Public Functions

inline AzurePresignedOpenOptions()
inline AzurePresignedOpenOptions(const std::string &baseUrl, const std::string &urlSuffix)

AzurePresignedOpenOptions constructor.

Parameters:
  • baseUrl – The base url for the VDS

  • urlSuffix – The suffix of the presigned url

Public Members

std::string baseUrl
std::string urlSuffix
struct DMSOpenOptions : public OpenVDS::OpenOptions

Public Functions

inline DMSOpenOptions()
inline DMSOpenOptions(std::string const &sdAuthorityUrl, std::string const &sdApiKey, std::string const &sdToken, std::string const &datasetPath, std::string const &authTokenUrl = std::string(), std::string const &refreshToken = std::string(), std::string const &clientId = std::string(), std::string const &clientSecret = std::string(), std::string const &scopes = std::string(), bool useFileNameForSingleFileDatasets = false, std::string const &legalTag = std::string(), std::string const &httpProxy = std::string())
inline DMSOpenOptions(std::string const &sdAuthorityUrl, std::string const &sdApiKey, std::string const &datasetPath, std::string (*authProviderCallback)(const void*), const void *authProviderCallbackData, bool useFileNameForSingleFileDatasets = false, std::string const &legalTag = std::string(), std::string const &httpProxy = std::string())

Public Members

std::string sdAuthorityUrl
std::string sdApiKey
std::string sdToken
std::string datasetPath
std::string authTokenUrl
std::string refreshToken
std::string clientId
std::string clientSecret
std::string scopes
bool useFileNameForSingleFileDatasets
std::string (*authProviderCallback)(const void*)
const void *authProviderCallbackData
std::string legalTag
std::string httpProxy
class GoogleCredentialsJson
#include <OpenVDS.h>

Credentials for opening a VDS in Google Cloud Storage by the string containing json with credentials Using OAuth.

Public Functions

inline explicit GoogleCredentialsJson(std::string const &json)

GoogleCredentialsJson constructor.

Parameters:

json – The string containing json with credentials

inline explicit GoogleCredentialsJson(std::string &&json) noexcept

Private Members

std::string json

Friends

friend struct GoogleOpenOptions
class GoogleCredentialsPath
#include <OpenVDS.h>

Credentials for opening a VDS in Google Cloud Storage by path to the service account json file Using OAuth.

Public Functions

inline explicit GoogleCredentialsPath(std::string const &path)

GoogleCredentialsPath constructor.

Parameters:

path – The path to the service account json file

inline explicit GoogleCredentialsPath(std::string &&path) noexcept

Private Members

std::string path

Friends

friend struct GoogleOpenOptions
class GoogleCredentialsSignedUrl
#include <OpenVDS.h>

Credentials for opening a VDS in Google Cloud Storage by using the default credentials Using signed URL mechanism.

Public Functions

inline explicit GoogleCredentialsSignedUrl(std::string const &region)

GoogleCredentialsSignedUrl constructor.

Parameters:

region – The string containing the region required for signature generation

inline explicit GoogleCredentialsSignedUrl(std::string &&region) noexcept

Private Members

std::string region

Friends

friend struct GoogleOpenOptions
class GoogleCredentialsSignedUrlJson
#include <OpenVDS.h>

Credentials for opening a VDS in Google Cloud Storage by the string containing json with credentials Using signed URL mechanism.

Public Functions

inline explicit GoogleCredentialsSignedUrlJson(std::string const &region, std::string const &json)

GoogleCredentialsSignedUrlJson constructor.

Parameters:
  • region – The string containing the region required for signature generation

  • json – The string containing json with credentials

inline explicit GoogleCredentialsSignedUrlJson(std::string &&region, std::string const &json)
inline explicit GoogleCredentialsSignedUrlJson(std::string const &region, std::string &&json)
inline explicit GoogleCredentialsSignedUrlJson(std::string &&region, std::string &&json) noexcept

Private Members

std::string region
std::string json

Friends

friend struct GoogleOpenOptions
class GoogleCredentialsSignedUrlPath
#include <OpenVDS.h>

Credentials for opening a VDS in Google Cloud Storage by path to the service account json file Using signed URL mechanism.

Public Functions

inline explicit GoogleCredentialsSignedUrlPath(std::string const &region, std::string const &path)

GoogleCredentialsSignedUrlPath constructor.

Parameters:
  • region – The string containing the region required for signature generation

  • path – The path to the service account json file

inline explicit GoogleCredentialsSignedUrlPath(std::string &&region, std::string const &path)
inline explicit GoogleCredentialsSignedUrlPath(std::string const &region, std::string &&path)
inline explicit GoogleCredentialsSignedUrlPath(std::string &&region, std::string &&path) noexcept

Private Members

std::string region
std::string path

Friends

friend struct GoogleOpenOptions
class GoogleCredentialsToken
#include <OpenVDS.h>

Credentials for opening a VDS in Google Cloud Storage by using the string containing an access token Using OAuth.

Public Functions

inline explicit GoogleCredentialsToken(std::string const &token)

GoogleCredentialsToken constructor.

Parameters:

token – The string containing an access token

inline explicit GoogleCredentialsToken(std::string &&token) noexcept

Private Members

std::string token

Friends

friend struct GoogleOpenOptions
struct GoogleOpenOptions : public OpenVDS::OpenOptions
#include <OpenVDS.h>

Options for opening a VDS in Google Cloud Storage.

Public Types

enum class CredentialsType : CredentialsIntType

Values:

enumerator Default
enumerator AccessToken
enumerator Path
enumerator Json
enumerator SignedUrl
enumerator SignedUrlPath
enumerator SignedUrlJson
using CredentialsIntType = unsigned int

Public Functions

inline GoogleOpenOptions()
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix)

GoogleOpenOptions constructor.

Parameters:
  • bucket – The bucket of the VDS

  • pathPrefix – The prefix of the VDS

  • credentials – Google Cloud Storage access credentials

inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsToken const &credentials)
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsPath const &credentials)
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsJson const &credentials)
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsSignedUrl const &credentials)
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsSignedUrlPath const &credentials)
inline GoogleOpenOptions(std::string const &bucket, std::string const &pathPrefix, GoogleCredentialsSignedUrlJson const &credentials)
inline bool SetSignedUrl()

Public Members

CredentialsType credentialsType = CredentialsType::Default
std::string bucket
std::string pathPrefix
std::string credentials
std::string storageClass
std::string region
struct HttpOpenOptions : public OpenVDS::OpenOptions
#include <OpenVDS.h>

Options for opening a VDS with a plain HTTP url. If there are query parameters in then they will be appended to the different sub urls. The resulting IO backend will not support uploading data.

Public Functions

inline HttpOpenOptions()
inline HttpOpenOptions(std::string const &url)

HttpOpenOptions constructor.

Parameters:

url – The http base url of the VDS

Public Members

std::string url
struct InMemoryOpenOptions : public OpenVDS::OpenOptions
#include <OpenVDS.h>

Options for opening a VDS which is stored in memory (for testing)

Public Functions

inline InMemoryOpenOptions()
inline InMemoryOpenOptions(const char *name)
inline InMemoryOpenOptions(const std::string &name)

Public Members

std::string name
struct OpenOptions

Subclassed by OpenVDS::AWSOpenOptions, OpenVDS::AzureOpenOptions, OpenVDS::AzurePresignedOpenOptions, OpenVDS::DMSOpenOptions, OpenVDS::GoogleOpenOptions, OpenVDS::HttpOpenOptions, OpenVDS::InMemoryOpenOptions, OpenVDS::VDSFileOpenOptions

Public Types

enum ConnectionType

Values:

enumerator AWS
enumerator Azure
enumerator AzureSdkForCpp
enumerator AzurePresigned
enumerator GoogleStorage
enumerator DMS
enumerator Http
enumerator VDSFile
enumerator InMemory
enumerator Other
enumerator ConnectionTypeCount

Public Functions

inline virtual ~OpenOptions()

Public Members

ConnectionType connectionType
WaveletAdaptiveMode waveletAdaptiveMode

This property (only relevant when using Wavelet compression) is used to control how the wavelet adaptive compression determines which level of wavelet compressed data to load. Depending on the setting, either the global or local WaveletAdaptiveTolerance or the WaveletAdaptiveRatio can be used.

float waveletAdaptiveTolerance

Wavelet adaptive tolerance, this setting will be used whenever the WavletAdaptiveMode is set to Tolerance.

float waveletAdaptiveRatio

Wavelet adaptive ratio, this setting will be used whenever the WavletAdaptiveMode is set to Ratio. A compression ratio of 5.0 corresponds to compressed data which is 20% of the original.

int requestThreadCount

Number of threads used to process requests.

LogLevel logLevel

Property to adjust the OpenVDSLogging handlers level.

Protected Functions

inline OpenOptions(ConnectionType connectionType)
inline OpenOptions(ConnectionType connectionType, WaveletAdaptiveMode waveletAdaptiveMode, float waveletAdaptiveTolerance, float waveletAdaptiveRatio, LogLevel logLevel)
class ScopedVDSHandle

Public Functions

inline ScopedVDSHandle()
inline ScopedVDSHandle(VDSHandle const &VDS)
inline ScopedVDSHandle(ScopedVDSHandle &&VDS)
inline ~ScopedVDSHandle()
inline void Close()

Close the VDS and free up all associated resources. If an error occurs, an exception will be thrown.

inline void Close(Error &error)

Close the VDS and free up all associated resources.

inline void RetryableClose()

Close the VDS and free up all associated resources if the close succeeds. If an error occurs, an exception will be thrown.

inline void RetryableClose(Error &error)

Close the VDS and free up all associated resources if the close succeeds.

inline operator VDSHandle() const
inline operator bool() const
inline ScopedVDSHandle &operator=(VDSHandle const &VDS) noexcept(true)
inline ScopedVDSHandle &operator=(ScopedVDSHandle &&VDS) noexcept(true)

Private Members

VDSHandle m_VDS
struct VDSFileOpenOptions : public OpenVDS::OpenOptions
#include <OpenVDS.h>

Options for opening a VDS file.

Public Functions

inline VDSFileOpenOptions()
inline VDSFileOpenOptions(const std::string &fileName)

VDSFileOpenOptions constructor.

Parameters:

fileName – The name of the VDS file

Public Members

std::string fileName
struct WaveletAdaptiveLevel
#include <OpenVDS.h>

Description of an available level of wavelet compression.

Public Functions

inline WaveletAdaptiveLevel()
inline WaveletAdaptiveLevel(float compressionTolerance, float compressionRatio, int64_t compressedSize)

Public Members

float compressionTolerance

Compression tolerance of the wavelet adaptive level.

float compressionRatio

Compression ratio (uncompressed size / compressed size) of the wavelet adaptive level.

int64_t compressedSize

Compressed size of the wavelet adaptive level.