bes  Updated for version 3.20.10
h5dmr.h
Go to the documentation of this file.
1 
2 // This file is part of hdf5_handler a HDF5 file handler for the OPeNDAP
3 // data server.
4 
5 // Copyright (c) 2007-2016 The HDF Group, Inc. and OPeNDAP, Inc.
6 //
7 // This is free software; you can redistribute it and/or modify it under the
8 // terms of the GNU Lesser General Public License as published by the Free
9 // Software Foundation; either version 2.1 of the License, or (at your
10 // option) any later version.
11 //
12 // This software is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15 // License for more details.
16 //
17 // You should have received a copy of the GNU Lesser General Public
18 // License along with this library; if not, write to the Free Software
19 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 //
21 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
22 // You can contact The HDF Group, Inc. at 1800 South Oak Street,
23 // Suite 203, Champaign, IL 61820
24 
39 
40 
41 #ifndef _h5dmr_H
42 #define _h5dmr_H
43 #include <H5Gpublic.h>
44 #include <H5Fpublic.h>
45 #include <H5Ipublic.h>
46 #include <H5Tpublic.h>
47 #include <H5Spublic.h>
48 #include <H5Apublic.h>
49 
50 #include <H5public.h>
51 
52 #include <libdap/DDS.h>
53 
54 
55 #include <libdap/D4Group.h>
56 #include <libdap/D4Attributes.h>
57 
58 // This struct stores the link object address and the shortest path link.
59 // Note: if it is necessary to retrieve all the link paths, uncomment
60 // vector<string>link_paths and change corresponding code.
61 
62 #if (H5_VERS_MAJOR == 1 && ((H5_VERS_MINOR == 12) || (H5_VERS_MINOR == 13)))
63 typedef struct {
64  H5O_token_t link_addr;
65  string slink_path;
66  //vector<string> link_paths;
67 } link_info_t;
68 #else
69 typedef struct {
70  haddr_t link_addr;
71  string slink_path;
72  //vector<string> link_paths;
73 } link_info_t;
74 #endif
75 
76 
77 bool breadth_first(const hid_t, hid_t, char *, libdap::D4Group* par_grp, const char *,bool,std::vector<link_info_t>&);
78 
79 void read_objects(libdap::D4Group* d4_grp,const std::string & varname, const std::string & filename,const hid_t);
80 void read_objects_base_type(libdap::D4Group* d4_grp,const std::string & varname, const std::string & filename,const hid_t);
81 void read_objects_structure(libdap::D4Group* d4_grp,const std::string & varname, const std::string & filename,const hid_t);
82 
83 
84 string get_hardlink_dmr(hid_t, const std::string &);
85 void get_softlink(libdap::D4Group* par_grp, hid_t, const std::string &, int,size_t);
86 void map_h5_dset_hardlink_to_d4(hid_t h5_objid,const std::string & full_path, libdap::BaseType* d4b,libdap::Structure * d4s,int flag);
87 
88 #endif
void read_objects(DAS &das, const string &varname, hid_t oid, int num_attr)
Definition: h5das.cc:295
void read_objects_base_type(DDS &dds_table, const string &varname, const string &filename)
Definition: h5dds.cc:257
void read_objects_structure(DDS &dds_table, const string &varname, const string &filename)
Definition: h5dds.cc:311
void get_softlink(libdap::D4Group *par_grp, hid_t, const std::string &, int, size_t)
Definition: h5dmr.cc:1078
bool breadth_first(const hid_t, hid_t, char *, libdap::D4Group *par_grp, const char *, bool, std::vector< link_info_t > &)
Definition: h5dmr.cc:321