30 #include <H5Ipublic.h>
31 #include <H5Rpublic.h>
33 #include <libdap/Array.h>
59 int format_constraint(
int *cor,
int *step,
int *edg);
61 hid_t mkstr(
int size, H5T_str_t pad);
63 bool m_array_of_structure(hid_t dsetid, std::vector<char>&values,
bool has_values,
int values_offset,
int nelms,
int* offset,
int*count,
int*step);
64 bool m_array_in_structure();
65 bool m_array_of_reference(hid_t dset_id,hid_t dtype_id);
66 bool m_array_of_reference_new_h5_apis(hid_t dset_id,hid_t dtype_id);
67 void m_intern_plain_array_data(
char *convbuf,hid_t memtype);
68 void m_array_of_atomic(hid_t, hid_t,
int,
int*,
int*,
int*);
70 void do_array_read(hid_t dset_id,hid_t dtype_id,std::vector<char>&values,
bool has_values,
int values_offset,
int nelms,
int* offset,
int* count,
int* step);
72 bool do_h5_array_type_read(hid_t dsetid, hid_t memb_id,std::vector<char>&values,
bool has_values,
int values_offset,
int at_nelms,
int* at_offset,
int*at_count,
int* at_step);
74 inline int INDEX_nD_TO_1D (
const std::vector < int > &dims,
75 const std::vector < int > &pos);
76 bool obtain_next_pos(std::vector<int>& pos, std::vector<int>&start,std::vector<int>&end,std::vector<int>&step,
int rank_change);
78 template<
typename T>
int subset(
81 std::vector<int> & dim,
85 std::vector<T> *poutput,
86 std::vector<int>& pos,
92 HDF5Array(
const std::string & n,
const std::string &d, libdap::BaseType * v);
117 void set_varpath(
const std::string vpath) { var_path = vpath;}
118 libdap::BaseType *h5dims_transform_to_dap4(libdap::D4Group *root,
const std::vector<std::string> &dimpath);
friend std::string return_type(hid_t datatype)
See return_type function defined in h5dds.cc.
virtual libdap::BaseType * ptr_duplicate()
virtual bool read()
Reads HDF5 array data into local buffer.
void set_numdim(int ndims)
remembers number of dimensions of this array.
HDF5Array(const std::string &n, const std::string &d, libdap::BaseType *v)
Constructor.
void set_numelm(int nelms)
remembers number of elements in this array.
void set_memneed(size_t need)
remembers memory size needed.