Function om_decoder_init

Source
pub unsafe extern "C" fn om_decoder_init(
    decoder: *mut OmDecoder_t,
    variable: *const OmVariable_t,
    dimension_count: u64,
    read_offset: *const u64,
    read_count: *const u64,
    cube_offset: *const u64,
    cube_dimensions: *const u64,
    io_size_merge: u64,
    io_size_max: u64,
) -> OmError_t
Expand description

@brief Initializes the om_decoder_t structure with the specified parameters.

This function sets up the om_decoder_t instance, configuring its dimensions, chunk information, reading parameters, LUT (Look-Up Table) properties, and decompression methods. It prepares the decoder for reading and processing compressed data.

@param decoder A pointer to an om_decoder_t structure that will be initialized. @param variable A pointer to the data region of the variable to read @param dimension_count The number of dimensions of the data (e.g., 3 for 3D data). All following array must have the some dimension count. @param read_offset A pointer to an array specifying the offsets for reading data in each dimension. This array sets the starting points for data reads. @param read_count A pointer to an array specifying the number of elements to read along each dimension. It defines how much data to read starting from read_offset. @param cube_offset A pointer to an array specifying the offset of the target cube in each dimension. This is used when reading data into a larger array. @param cube_dimensions A pointer to an array specifying the dimensions of the target cube being written to.It can be the same as read_count but allows writing into larger arrays.. @param io_size_merge The maximum size (in bytes) for merging consecutive IO operations. It helps to optimize read performance by merging small reads. @param io_size_max The maximum size (in bytes) for a single IO operation before it is split. It defines the threshold for splitting large reads.

@returns Return an om_error_t if the compression or dimension is invalid