38#include <libdap/InternalErr.h>
40#include <libdap/Str.h>
46BaseType *HDF5GMCFFillIndexArray::ptr_duplicate()
48 auto HDF5GMCFFillIndexArray_unique = make_unique<HDF5GMCFFillIndexArray>(*
this);
49 return HDF5GMCFFillIndexArray_unique.release();
53bool HDF5GMCFFillIndexArray::read()
56 BESDEBUG(
"h5",
"Coming to HDF5GMCFFillIndexArray read "<<endl);
58 read_data_NOT_from_mem_cache(
false,
nullptr);
64void HDF5GMCFFillIndexArray::read_data_NOT_from_mem_cache(
bool ,
void*) {
67 BESDEBUG(
"h5",
"Coming to HDF5GMCFFillIndexArray: read_data_NOT_from_mem_cache"<<endl);
73cerr<<
"coming to read function"<<endl;
74cerr<<
"file name " <<filename <<endl;
75"h5",
"var name "<<varname <<endl;
79 throw InternalErr (__FILE__, __LINE__,
80 "Currently the rank of the dimension scale must be 1.");
82 vector<int64_t> offset;
90 nelms = format_constraint (offset.data(), step.data(), count.data());
98 vector<unsigned char> val;
101 for (int64_t i = 0; i < count[0]; i++)
102 val[i] = (
unsigned char)(offset[0] + step[0] * i);
104 set_value_ll ((dods_byte *) val.data(), nelms);
112 if(is_dap4 ==
false) {
117 for (int64_t i = 0; i < count[0]; i++)
118 val[i] = (
short)(offset[0] + step[0] * i);
120 set_value_ll (val.data(), nelms);
127 for (int64_t i = 0; i < count[0]; i++)
128 val[i] = (
char)(offset[0] + step[0] * i);
130 set_value_ll ((dods_int8*)val.data(), nelms);
142 for (int64_t i = 0; i < count[0]; i++)
143 val[i] = (
short)(offset[0] + step[0] * i);
145 set_value_ll (val.data(), nelms);
152 vector<unsigned short> val;
155 for (int64_t i = 0; i < count[0]; i++)
156 val[i] = (
unsigned short)(offset[0] + step[0] * i);
158 set_value_ll (val.data(), nelms);
168 for (int64_t i = 0; i < count[0]; i++)
169 val[i] = (
int)(offset[0] + step[0] * i);
171 set_value_ll (val.data(), nelms);
177 vector<unsigned int>val;
180 for (int64_t i = 0; i < count[0]; i++)
181 val[i] = (
unsigned int)(offset[0] + step[0] * i);
183 set_value_ll (val.data(), nelms);
189 vector<long long>val;
192 for (int64_t i = 0; i < count[0]; i++)
193 val[i] = offset[0] + step[0] * i;
195 set_value_ll ((dods_int64 *) val.data(), nelms);
201 vector<unsigned long long>val;
204 for (int64_t i = 0; i < count[0]; i++)
205 val[i] = offset[0] + step[0] * i;
207 set_value_ll ((dods_uint64 *) val.data(), nelms);
217 for (int64_t i = 0; i < count[0]; i++)
218 val[i] = (
float)(offset[0] + step[0] * i);
220 set_value_ll (val.data(), nelms);
231 for (int64_t i = 0; i < count[0]; i++)
232 val[i] = (
double)(offset[0] + step[0] * i);
234 set_value_ll (val.data(), nelms);
244 eherr <<
"Currently the dimension scale datatype cannot be string"<<endl;
245 throw InternalErr (__FILE__, __LINE__, eherr.str ());
This class includes the methods to read data array into DAP buffer from an HDF5 dataset for the CF op...