Plugins

Filters

typedef int (*blosc2_filter_forward_cb)(const uint8_t*, uint8_t*, int32_t, uint8_t, blosc2_cparams*, uint8_t)
typedef int (*blosc2_filter_backward_cb)(const uint8_t*, uint8_t*, int32_t, uint8_t, blosc2_dparams*, uint8_t)
struct blosc2_filter

The parameters for a user-defined filter.

Public Members

uint8_t id

The filter identifier.

char *name

The filter name.

uint8_t version

The filter version.

blosc2_filter_forward_cb forward

The filter function that is used during compression.

blosc2_filter_backward_cb backward

The filter function that is used during decompression.

int blosc2_register_filter(blosc2_filter *filter)

Register locally a user-defined filter in Blosc.

Parameters:
  • filter – The filter to register.

Returns:

0 if succeeds. Else a negative code is returned.

Codecs

typedef int (*blosc2_codec_encoder_cb)(const uint8_t *input, int32_t input_len, uint8_t *output, int32_t output_len, uint8_t meta, blosc2_cparams *cparams, const void *chunk)
typedef int (*blosc2_codec_decoder_cb)(const uint8_t *input, int32_t input_len, uint8_t *output, int32_t output_len, uint8_t meta, blosc2_dparams *dparams, const void *chunk)
struct blosc2_codec

Public Members

uint8_t compcode

The codec identifier.

char *compname

The codec name.

uint8_t complib

The codec library format.

uint8_t version

The codec version.

blosc2_codec_encoder_cb encoder

The codec encoder that is used during compression.

blosc2_codec_decoder_cb decoder

The codec decoder that is used during decompression.

int blosc2_register_codec(blosc2_codec *codec)

Register locally a user-defined codec in Blosc.

Parameters:
  • codec – The codec to register.

Returns:

0 if succeeds. Else a negative code is returned.

Tuners

struct blosc2_tuner

Public Members

int (*init)(void *config, blosc2_context *cctx, blosc2_context *dctx)

Initialize tuner. Keep in mind dctx may be NULL. This should memcpy the cctx->tuner_params.

int (*next_blocksize)(blosc2_context *context)

Only compute the next blocksize. Only it is executed if tuner is not initialized.

int (*next_cparams)(blosc2_context *context)

Compute the next cparams. Only is executed if tuner is initialized.

int (*update)(blosc2_context *context, double ctime)

Update the tuner parameters.

int (*free)(blosc2_context *context)

Free the tuner.

int id

The tuner id.

char *name

The tuner name.

int blosc2_register_tuner(blosc2_tuner *tuner)

Register locally a user-defined tuner in Blosc.

Parameters:
  • tuner – The tuner to register.

Returns:

0 if succeeds. Else a negative code is returned.

IO backends

typedef void *(*blosc2_open_cb)(const char *urlpath, const char *mode, void *params)
typedef int (*blosc2_close_cb)(void *stream)
typedef int64_t (*blosc2_write_cb)(const void *ptr, int64_t size, int64_t nitems, int64_t position, void *stream)
typedef int64_t (*blosc2_read_cb)(void **ptr, int64_t size, int64_t nitems, int64_t position, void *stream)
typedef int (*blosc2_truncate_cb)(void *stream, int64_t size)
struct blosc2_io_cb

Public Members

uint8_t id

The IO identifier.

char *name

The IO name.

bool is_allocation_necessary

If true, the caller needs to allocate data for the read function (ptr argument).

If false, the read function takes care of memory allocation and stores the address in the allocated_ptr argument.

blosc2_open_cb open

The IO open callback.

blosc2_close_cb close

The IO close callback.

blosc2_size_cb size

The IO size callback.

blosc2_write_cb write

The IO write callback.

blosc2_read_cb read

The IO read callback.

blosc2_truncate_cb truncate

The IO truncate callback.

blosc2_destroy_cb destroy

The IO destroy callback (called in the end when finished with the schunk).

struct blosc2_io

Public Members

const char *name

The IO identifier.

void *params

The IO parameters.

int blosc2_register_io_cb(const blosc2_io_cb *io)

Register a user-defined input/output callbacks in Blosc.

Parameters:
  • io – The callbacks API to register.

Returns:

0 if succeeds. Else a negative code is returned.

blosc2_io_cb *blosc2_get_io_cb(uint8_t id)

Get a user-defined input/output callback in Blosc.

Parameters:
  • id – The id of the callback to get.

Returns:

A pointer containing the desired callback if success. Else a NULL pointer is returned.