Skip to content

File acquire.zarr.h

File List > acquire-zarr > include > acquire.zarr.h

Go to the documentation of this file

#pragma once

#include "zarr.types.h"

#ifdef __cplusplus
extern "C"
{
#endif

    typedef struct ZarrStreamSettings_s
    {
        const char* store_path; 
        ZarrS3Settings* s3_settings; 
        ZarrVersion
          version; 
        unsigned int max_threads; 
        bool overwrite; 
        ZarrArraySettings*
          arrays; 
        size_t array_count; 
        ZarrHCSSettings* hcs_settings; 
    } ZarrStreamSettings;

    typedef struct ZarrStream_s ZarrStream;

    const char* Zarr_get_api_version();

    ZarrStatusCode Zarr_set_log_level(ZarrLogLevel level);

    ZarrLogLevel Zarr_get_log_level();

    const char* Zarr_get_status_message(ZarrStatusCode code);

    ZarrStatusCode ZarrStreamSettings_create_arrays(
      ZarrStreamSettings* settings,
      size_t array_count);

    void ZarrStreamSettings_destroy_arrays(ZarrStreamSettings* settings);

    ZarrStatusCode ZarrStreamSettings_estimate_max_memory_usage(
      const ZarrStreamSettings* settings,
      size_t* usage);

    size_t ZarrStreamSettings_get_array_count(
      const ZarrStreamSettings* settings);

    ZarrStatusCode ZarrStreamSettings_get_array_key(
      const ZarrStreamSettings* settings,
      size_t index,
      char** key);

    ZarrStatusCode ZarrArraySettings_create_dimension_array(
      ZarrArraySettings* settings,
      size_t dimension_count);

    void ZarrArraySettings_destroy_dimension_array(ZarrArraySettings* settings);

    ZarrStatusCode ZarrHCSWell_create_image_array(ZarrHCSWell* well,
                                                  size_t image_count);

    void ZarrHCSWell_destroy_image_array(ZarrHCSWell* well);

    ZarrStatusCode ZarrHCSPlate_create_well_array(ZarrHCSPlate* plate,
                                                  size_t well_count);

    void ZarrHCSPlate_destroy_well_array(ZarrHCSPlate* plate);

    ZarrStatusCode ZarrHCSPlate_create_acquisition_array(
      ZarrHCSPlate* plate,
      size_t acquisition_count);

    void ZarrHCSPlate_destroy_acquisition_array(ZarrHCSPlate* plate);

    ZarrStatusCode ZarrHCSPlate_create_row_name_array(ZarrHCSPlate* plate,
                                                      size_t row_count);

    void ZarrHCSPlate_destroy_row_name_array(ZarrHCSPlate* plate);

    ZarrStatusCode ZarrHCSPlate_create_column_name_array(ZarrHCSPlate* plate,
                                                         size_t column_count);

    void ZarrHCSPlate_destroy_column_name_array(ZarrHCSPlate* plate);

    ZarrStatusCode ZarrHCSSettings_create_plate_array(ZarrHCSSettings* settings,
                                                      size_t plate_count);

    void ZarrHCSSettings_destroy_plate_array(ZarrHCSSettings* settings);

    ZarrStream* ZarrStream_create(ZarrStreamSettings* settings);

    void ZarrStream_destroy(ZarrStream* stream);

    ZarrStatusCode ZarrStream_append(ZarrStream* stream,
                                     const void* data,
                                     size_t bytes_in,
                                     size_t* bytes_out,
                                     const char* key);

    ZarrStatusCode ZarrStream_write_custom_metadata(ZarrStream* stream,
                                                    const char* custom_metadata,
                                                    bool overwrite);

    ZarrStatusCode ZarrStream_get_current_memory_usage(const ZarrStream* stream,
                                                       size_t* usage);

#ifdef __cplusplus
}
#endif