41#include "HDF5DiskCache.h"
42#include <libdap/D4Group.h>
43#include <libdap/D4Attributes.h>
50 const hid_t h5_file_id,
51 const std::string & h5_filename,
53 const std::vector<size_t>& h5_dimsizes,
54 const std::string &varfullpath,
55 const size_t h5_total_elems,
56 const CVType h5_cvtype,
57 const bool h5_islatlon,
58 const float h5_comp_ratio,
59 const bool h5_is_dap4,
60 const std::string & n=
"",
61 libdap::BaseType * v =
nullptr):
65 filename(h5_filename),
67 dimsizes(h5_dimsizes),
69 total_elems(h5_total_elems),
71 islatlon(h5_islatlon),
72 comp_ratio(h5_comp_ratio),
77 ~ HDF5CFArray()
override =
default;
79 libdap::BaseType *ptr_duplicate()
override;
84 libdap::BaseType *h5cfdims_transform_to_dap4_int64(libdap::D4Group *root);
97 std::vector<size_t>dimsizes;
104 bool valid_disk_cache();
105 bool valid_disk_cache_for_compressed_data(
short dtype_size)
const;
106 bool obtain_cached_data(
HDF5DiskCache*,
const std::string&,
int, std::vector<int>&,std::vector<int>&,
size_t,
short);
107 void write_data_to_cache(hid_t dset_id, hid_t dspace_id,hid_t mspace_id,hid_t memtype,
const std::string& cache_fpath,
short dtype_size,
const std::vector<char> &buf,
int nelms);
A helper class that aims to reduce code redundence for different special CF derived array class For e...
This class specifies the core engineering of mapping HDF5 to DAP by following CF.
void read_data_NOT_from_mem_cache(bool add_cache, void *buf) override