bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
HDFDMRArray_SDS.h
1
2// This file is part of the hdf4 data handler for the OPeNDAP data server.
3// It retrieves HDF4 SDS values for a direct DMR-mapping DAP4 response.
4// Each SDS will be mapped to a DAP variable.
5
6// Authors: Kent Yang <myang6@hdfgroup.org>
7// Copyright (c) The HDF Group
9
10#ifndef HDFDMRARRAY_SDS_H
11#define HDFDMRARRAY_SDS_H
12
13#include "mfhdf.h"
14#include "hdf.h"
15
16#include <libdap/Array.h>
17
18class HDFDMRArray_SDS:public libdap::Array
19{
20 public:
21 HDFDMRArray_SDS (const std::string& filename, int32 objref, int32 rank, unsigned int dtype_size, const std::string & n = "", libdap::BaseType * v = nullptr):
22 Array (n, v),
23 filename(filename),
24 sds_ref (objref),
25 sds_rank (rank),
26 sds_typesize(dtype_size) {
27 }
28 ~ HDFDMRArray_SDS () override = default;
29
30 // Standard way of DAP handlers to pass the coordinates of the subsetted region to the handlers
31 // Return the number of elements to read.
32 int format_constraint (int *cor, int *step, int *edg);
33
34 libdap::BaseType *ptr_duplicate () override
35 {
36 return new HDFDMRArray_SDS (*this);
37 }
38
39 bool read () override;
40
41 private:
42
43 std::string filename;
44 int32 sds_ref;
45
46 // SDS array rank
47 int32 sds_rank ;
48
49 unsigned int sds_typesize ;
50
51
52};
53
54
55#endif