bes Updated for version 3.20.13
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)))
63typedef struct {
64 H5O_token_t link_addr;
65 string slink_path;
66 //vector<string> link_paths;
68#else
69typedef struct {
70 haddr_t link_addr;
71 string slink_path;
72 //vector<string> link_paths;
74#endif
75
76
77bool breadth_first(const hid_t, hid_t, const char *, libdap::D4Group* par_grp, const char *,bool,std::vector<link_info_t>&);
78
79void read_objects(libdap::D4Group* d4_grp,const std::string & varname, const std::string & filename,const hid_t);
80void read_objects_base_type(libdap::D4Group* d4_grp,const std::string & varname, const std::string & filename,const hid_t);
81void read_objects_structure(libdap::D4Group* d4_grp,const std::string & varname, const std::string & filename,const hid_t);
82
83
84string get_hardlink_dmr(hid_t, const std::string &);
85void get_softlink(libdap::D4Group* par_grp, hid_t, const std::string &, int,size_t);
86void 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:259
void read_objects_structure(DDS &dds_table, const string &varname, const string &filename)
Definition: h5dds.cc:313
bool breadth_first(const hid_t file_id, hid_t pid, const char *gname, D4Group *par_grp, const char *fname, bool use_dimscale, vector< link_info_t > &hdf5_hls)
Definition: h5dmr.cc:321