34#include "config_hdf5.h"
39#include <libdap/InternalErr.h>
41#include <libdap/Str.h>
47BaseType *HDF5GMCFFillIndexArray::ptr_duplicate()
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.");
90 nelms = format_constraint (offset.data(), step.data(), count.data());
98 vector<unsigned char> val;
101 for (
int i = 0; i < count[0]; i++)
102 val[i] = (
unsigned char)(offset[0] + step[0] * i);
104 set_value ((dods_byte *) val.data(), nelms);
112 if(is_dap4 ==
false) {
117 for (
int i = 0; i < count[0]; i++)
118 val[i] = (
short)(offset[0] + step[0] * i);
120 set_value ((dods_int16 *) val.data(), nelms);
127 for (
int i = 0; i < count[0]; i++)
128 val[i] = (
char)(offset[0] + step[0] * i);
130 set_value ((dods_int8 *) val.data(), nelms);
144 for (
int i = 0; i < count[0]; i++)
145 val[i] = (
short)(offset[0] + step[0] * i);
147 set_value ((dods_int16 *) val.data(), nelms);
154 vector<unsigned short> val;
157 for (
int i = 0; i < count[0]; i++)
158 val[i] = (
unsigned short)(offset[0] + step[0] * i);
160 set_value ((dods_uint16 *) val.data(), nelms);
170 for (
int i = 0; i < count[0]; i++)
171 val[i] = offset[0] + step[0] * i;
173 set_value ((dods_int32 *) val.data(), nelms);
179 vector<unsigned int>val;
182 for (
int i = 0; i < count[0]; i++)
183 val[i] = offset[0] + step[0] * i;
185 set_value ((dods_uint32 *) val.data(), nelms);
191 vector<long long>val;
194 for (
int i = 0; i < count[0]; i++)
195 val[i] = offset[0] + step[0] * i;
197 set_value ((dods_int64 *) val.data(), nelms);
203 vector<unsigned long long>val;
206 for (
int i = 0; i < count[0]; i++)
207 val[i] = offset[0] + step[0] * i;
209 set_value ((dods_uint64 *) val.data(), nelms);
219 for (
int i = 0; i < count[0]; i++)
220 val[i] = (
float)(offset[0] + step[0] * i);
222 set_value ((dods_float32 *) val.data(), nelms);
233 for (
int i = 0; i < count[0]; i++)
234 val[i] = offset[0] + step[0] * i;
236 set_value ((dods_float64 *) val.data(), nelms);
246 eherr <<
"Currently the dimension scale datatype cannot be string"<<endl;
247 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...