34 #include "config_hdf5.h"
39 #include <libdap/InternalErr.h>
41 #include <libdap/Str.h>
47 BaseType *HDF5GMCFFillIndexArray::ptr_duplicate()
53 bool HDF5GMCFFillIndexArray::read()
56 BESDEBUG(
"h5",
"Coming to HDF5GMCFFillIndexArray read "<<endl);
58 read_data_NOT_from_mem_cache(
false,NULL);
64 void HDF5GMCFFillIndexArray::read_data_NOT_from_mem_cache(
bool ,
void*) {
67 BESDEBUG(
"h5",
"Coming to HDF5GMCFFillIndexArray: read_data_NOT_from_mem_cache"<<endl);
73 cerr<<
"coming to read function"<<endl;
74 cerr<<
"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[0], &step[0], &count[0]);
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[0], 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[0], 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[0], 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[0], 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[0], nelms);
170 for (
int i = 0; i < count[0]; i++)
171 val[i] = offset[0] + step[0] * i;
173 set_value ((dods_int32 *) &val[0], 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[0], 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[0], 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[0], 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[0], nelms);
233 for (
int i = 0; i < count[0]; i++)
234 val[i] = offset[0] + step[0] * i;
236 set_value ((dods_float64 *) &val[0], 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...