46class HDF5CFArray:
public HDF5BaseArray {
48 HDF5CFArray(
int h5_rank,
49 const hid_t h5_file_id,
50 const std::string & h5_filename,
52 const std::vector<size_t>& h5_dimsizes,
53 const std::string &varfullpath,
54 const size_t h5_total_elems,
55 const CVType h5_cvtype,
56 const bool h5_islatlon,
57 const float h5_comp_ratio,
58 const bool h5_is_dap4,
59 const std::string & n=
"",
60 libdap::BaseType * v =
nullptr):
64 filename(h5_filename),
66 dimsizes(h5_dimsizes),
68 total_elems(h5_total_elems),
70 islatlon(h5_islatlon),
71 comp_ratio(h5_comp_ratio),
76 ~ HDF5CFArray()
override =
default;
78 libdap::BaseType *ptr_duplicate()
override;
83 libdap::BaseType *h5cfdims_transform_to_dap4_int64(libdap::D4Group *root);
96 std::vector<size_t>dimsizes;
103 bool valid_disk_cache()
const;
104 bool valid_disk_cache_for_compressed_data(
short dtype_size)
const;
105 bool obtain_cached_data(
HDF5DiskCache*,
const std::string&,
int, std::vector<int64_t>&,std::vector<int64_t>&,
size_t,
short);
106 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, int64_t nelms);