bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
h5dmr.cc File Reference

DMR(Data Metadata Response) request processing source. More...

#include <sstream>
#include <memory>
#include <libdap/InternalErr.h>
#include <libdap/mime_util.h>
#include <libdap/D4Maps.h>
#include <BESDebug.h>
#include "hdf5_handler.h"
#include "HDF5Int32.h"
#include "HDF5UInt32.h"
#include "HDF5UInt16.h"
#include "HDF5Int16.h"
#include "HDF5Array.h"
#include "HDF5Float32.h"
#include "HDF5Float64.h"
#include "HDF5Url.h"
#include "HDF5Structure.h"
#include "h5dmr.h"
#include "HDF5CFUtil.h"
#include "h5commoncfdap.h"
#include "HE5Parser.h"
#include "HE5Checker.h"
#include "HDF5CFProj.h"
#include "HDF5CFProj1D.h"
#include "HDF5MissLLArray.h"
Include dependency graph for h5dmr.cc:

Go to the source code of this file.

Functions

void add_coord_maps (D4Group *d4_grp, Array *var, vector< string > &coord_names, unordered_map< string, Array * > &coname_array_maps, unordered_set< string > &handled_dim_names)
 
void add_dap4_coverage_default (D4Group *d4_root, const vector< string > &handled_all_cv_names)
 Add DAP4 coverage.
 
void add_dap4_coverage_default_internal (D4Group *d4_grp, unordered_map< string, Array * > &dsname_array_maps, unordered_map< string, Array * > &coname_array_maps)
 
void add_dimscale_maps (libdap::Array *var, std::unordered_map< std::string, libdap::Array * > &dc_array_maps, const std::unordered_set< std::string > &handled_dim_names)
 
void add_eos5_grid_vars_geo (D4Group *d4_grp, const eos5_grid_info_t &eg_info)
 
void add_eos5_grid_vars_non_geo (D4Group *d4_grp, eos5_dim_info_t &eos5_dim_info, const eos5_grid_info_t &eg_info)
 
void add_lamaz_cf_grid_mapping_attrs (libdap::BaseType *var, const eos5_grid_info_t &eg_info)
 
void add_possible_eos5_grid_vars (D4Group *d4_grp, eos5_dim_info_t &eos5_dim_info)
 
void add_possible_var_cv_info (libdap::BaseType *var, const eos5_dim_info_t &eos5_dim_info)
 
void add_ps_cf_grid_mapping_attrs (libdap::BaseType *var, const eos5_grid_info_t &eg_info)
 
void array_add_dimensions_dimscale (HDF5Array *ar)
 
bool array_add_dimensions_non_dimscale (HDF5Array *ar, const string &varname, const eos5_dim_info_t &eos5_dim_info)
 
bool breadth_first (hid_t file_id, hid_t pid, const char *gname, D4Group *par_grp, const char *fname, bool use_dimscale, bool is_eos5, vector< link_info_t > &hdf5_hls, eos5_dim_info_t &eos5_dim_info, vector< string > &handled_cv_names)
 
void build_gd_info (const HE5Grid &gd, unordered_map< string, eos5_grid_info_t > &gridname_to_info)
 
void build_grp_dim_path (const string &eos5_obj_name, const vector< HE5Dim > &dim_list, unordered_map< string, vector< HE5Dim > > &grppath_to_dims, HE5_TYPE e5_type)
 
void build_var_dim_path (const string &eos5_obj_name, const vector< HE5Var > &var_list, unordered_map< string, vector< string > > &varpath_to_dims, HE5_TYPE e5_type, bool is_geo)
 
bool check_soft_external_links (D4Group *par_grp, hid_t pid, int &slinkindex, const char *gname, const vector< char > &oname, bool handle_softlink)
 
string get_hardlink_dmr (hid_t h5obj_id, const string &oname)
 
void get_softlink (D4Group *par_grp, hid_t h5obj_id, const string &oname, int index, size_t val_size)
 
int get_strmetadata_num (const string &meta_str)
 
void handle_absolute_path_cv (const D4Group *d4_grp, string &coord_name)
 
void handle_actual_dataset (D4Group *par_grp, hid_t pid, const string &full_path_name, const string &fname, bool use_dimscale, bool is_eos5, eos5_dim_info_t &eos5_dim_info)
 
void handle_child_grp (hid_t file_id, hid_t pid, const char *gname, D4Group *par_grp, const char *fname, bool use_dimscale, bool is_eos5, vector< link_info_t > &hdf5_hls, eos5_dim_info_t &eos5_dim_info, vector< string > &handled_cv_names, const vector< char > &oname)
 
void handle_eos5_datasets (D4Group *par_grp, const char *gname, eos5_dim_info_t &eos5_dim_info)
 
void handle_pure_dimension (D4Group *par_grp, hid_t pid, const vector< char > &oname, bool is_eos5, const string &full_path_name)
 
void handle_relative_path_cv (const D4Group *d4_grp, string &coord_name)
 
void handle_relative_path_cvname_internal (const D4Group *d4_grp, string &coord_name, unsigned short sep_count)
 
void handle_vlen_int_float (D4Group *d4_grp, hid_t pid, const string &vname, const string &var_path, const string &filename, hid_t dset_id)
 
yy_buffer_state * he5dds_scan_string (const char *str)
 
int he5ddslex_destroy ()
 
int he5ddsparse (HE5Parser *he5parser)
 
bool is_eos5_grid_grp (D4Group *d4_group, const eos5_dim_info_t &eos5_dim_info, eos5_grid_info_t &eg_info)
 
void make_attributes_to_cf (BaseType *var, const eos5_dim_info_t &eos5_dim_info)
 
void make_coord_names_fpath (D4Group *d4_grp, vector< string > &coord_names)
 
void map_h5_attrs_to_dap4 (hid_t h5_objid, D4Group *d4g, BaseType *d4b, Structure *d4s, int flag)
 
void map_h5_dset_hardlink_to_d4 (hid_t h5_dsetid, const string &full_path, BaseType *d4b, Structure *d4s, int flag)
 
void map_h5_varpath_to_dap4_attr (D4Group *d4g, BaseType *d4b, Structure *d4s, const string &varpath, short flag)
 
bool no_eos5_grid_vars_in_grp (D4Group *d4_group, const eos5_grid_info_t &eg_info)
 
void obtain_coord_names (Array *ar, vector< string > &coord_names)
 
void obtain_ds_name_array_maps (D4Group *d4_grp, unordered_map< string, Array * > &dsn_array_maps, const vector< string > &handled_all_cv_names)
 
void obtain_ds_name_array_maps_internal (BaseType *v, unordered_map< string, Array * > &dsn_array_maps, const vector< string > &handled_all_cv_names)
 
bool obtain_eos5_dim (const string &varname, const unordered_map< string, vector< string > > &varpath_to_dims, vector< string > &dimnames)
 
void obtain_eos5_dims (hid_t fileid, eos5_dim_info_t &eos5_dim_info)
 
bool obtain_eos5_grp_dim (const string &grpname, const unordered_map< string, vector< HE5Dim > > &grppath_to_dims, vector< string > &dimnames)
 
void obtain_handled_dim_names (Array *var, unordered_set< string > &handled_dim_names)
 
void obtain_hdf5_object_name (hid_t pid, hsize_t obj_index, const char *gname, vector< char > &oname)
 
void obtain_multi_string_coord_names (D4Attribute *d4_attr, vector< string > &coord_names)
 
string obtain_new_varname (const string &varname, bool use_dimscale, bool is_eos5)
 
bool obtain_no_path_cv (D4Group *d4_grp, string &coord_name)
 
void obtain_struct_metadata_info (hid_t ecs_grp_id, vector< string > &s_oname, vector< bool > &smetatype, int &strmeta_num_total, bool &strmeta_no_suffix, hsize_t nelems)
 
int obtain_struct_metadata_value (hid_t ecs_grp_id, const vector< string > &s_oname, const vector< bool > &smetatype, hsize_t nelems, vector< string > &strmeta_value, string &total_strmeta_value)
 
int obtain_struct_metadata_value_internal (hid_t ecs_grp_id, const vector< string > &s_oname, vector< string > &strmeta_value, string &total_strmeta_value, const string &finstr, hsize_t i)
 
hsize_t obtain_unlim_pure_dim_size (hid_t pid, const string &dname)
 
hsize_t obtain_unlim_pure_dim_size_internal (hid_t dset_id, const string &dname, const string &reference_name)
 
hsize_t obtain_unlim_pure_dim_size_internal_value (hid_t dset_id, hid_t attr_id, hid_t atype_id, const string &reference_name, const string &dname)
 
void read_objects (D4Group *d4_grp, hid_t pid, const string &varname, const string &filename, hid_t dset_id, bool use_dimscale, bool is_eos5, eos5_dim_info_t &eos5_dim_info)
 
void read_objects_base_type (D4Group *d4_grp, hid_t pid, const string &varname, const string &filename, hid_t dset_id, bool use_dimscale, bool is_eos5, eos5_dim_info_t &eos5_dim_info)
 
void read_objects_basetype_add_eos5_grid_mapping (const eos5_dim_info_t &eos5_dim_info, BaseType *new_var, const HDF5Array *ar)
 
void read_objects_basetype_attr_hl (const string &varname, BaseType *bt, hid_t dset_id, bool is_eos5)
 
void read_objects_structure (D4Group *d4_grp, const string &varname, const string &filename, hid_t dset_id, bool use_dimscale, bool is_eos5)
 
void read_objects_structure_arrays (D4Group *d4_grp, Structure *structure, const string &varname, const string &newvarname, const string &filename, hid_t dset_id, bool is_eos5)
 
void read_objects_structure_scalar (D4Group *d4_grp, Structure *structure, const string &varname, hid_t dset_id, bool is_eos5)
 
string read_struct_metadata (hid_t s_file_id)
 EOS5 handling.
 
void remove_empty_coord_names (vector< string > &coord_names)
 
void reorder_vars (D4Group *d4_grp, const map< string, Array * > &coname_array_maps, const map< string, Array * > &dc_array_maps)
 
void reorder_vars_internal (D4Group *d4_grp, const vector< int > &cv_pos, const vector< BaseType * > &cv_obj_ptr, int stop_index)
 
void reorder_vars_internal_final_phase (D4Group *d4_grp, const vector< int > &mov_cv_pos, const vector< int > &mov_front_pos, const vector< BaseType * > &mov_front_v_ptr, const vector< BaseType * > &mov_cv_ptr)
 
void write_dap4_attr (hid_t attr_id, libdap::D4Attribute *d4_attr, hid_t ty_id, const DSattr_t &attr_inst)
 
void write_dap4_attr_value (D4Attribute *d4_attr, hid_t ty_id, hsize_t nelmts, char *tempvalue, size_t elesize=0)
 

Variables

HDF5PathFinder obj_paths
 A variable for remembering visited paths to break cyclic HDF5 groups.
 

Detailed Description

DMR(Data Metadata Response) request processing source.

This file is part of HDF5 handler, a C++ implementation of the DAP4 protocol to access HDF5 data.

This file contains functions that use the breadth-first search to walk through an HDF5 file and build the in-memory DMR. Using breadth-first ensures the correct DAP4 DMR layout(group's variables first and then the groups).

Author
Kent Yang myang.nosp@m.6@hd.nosp@m.fgrou.nosp@m.p.or.nosp@m.g

Definition in file h5dmr.cc.

Function Documentation

◆ add_coord_maps()

void add_coord_maps ( D4Group * d4_grp,
Array * var,
vector< string > & coord_names,
unordered_map< string, Array * > & coname_array_maps,
unordered_set< string > & handled_dim_names )

Definition at line 2294 of file h5dmr.cc.

◆ add_dap4_coverage_default()

void add_dap4_coverage_default ( D4Group * d4_root,
const vector< string > & handled_all_cv_names )

Add DAP4 coverage.

Definition at line 1937 of file h5dmr.cc.

◆ add_dap4_coverage_default_internal()

void add_dap4_coverage_default_internal ( D4Group * d4_grp,
unordered_map< string, Array * > & dsname_array_maps,
unordered_map< string, Array * > & coname_array_maps )

Definition at line 2037 of file h5dmr.cc.

◆ add_dimscale_maps()

void add_dimscale_maps ( libdap::Array * var,
std::unordered_map< std::string, libdap::Array * > & dc_array_maps,
const std::unordered_set< std::string > & handled_dim_names )

Definition at line 2379 of file h5dmr.cc.

◆ add_eos5_grid_vars_geo()

void add_eos5_grid_vars_geo ( D4Group * d4_grp,
const eos5_grid_info_t & eg_info )

Definition at line 2652 of file h5dmr.cc.

◆ add_eos5_grid_vars_non_geo()

void add_eos5_grid_vars_non_geo ( D4Group * d4_grp,
eos5_dim_info_t & eos5_dim_info,
const eos5_grid_info_t & eg_info )

Definition at line 2721 of file h5dmr.cc.

◆ add_lamaz_cf_grid_mapping_attrs()

void add_lamaz_cf_grid_mapping_attrs ( libdap::BaseType * var,
const eos5_grid_info_t & eg_info )

Definition at line 3057 of file h5dmr.cc.

◆ add_possible_eos5_grid_vars()

void add_possible_eos5_grid_vars ( D4Group * d4_grp,
eos5_dim_info_t & eos5_dim_info )

Definition at line 2609 of file h5dmr.cc.

◆ add_possible_var_cv_info()

void add_possible_var_cv_info ( libdap::BaseType * var,
const eos5_dim_info_t & eos5_dim_info )

Definition at line 3095 of file h5dmr.cc.

◆ add_ps_cf_grid_mapping_attrs()

void add_ps_cf_grid_mapping_attrs ( libdap::BaseType * var,
const eos5_grid_info_t & eg_info )

Definition at line 2998 of file h5dmr.cc.

◆ array_add_dimensions_dimscale()

void array_add_dimensions_dimscale ( HDF5Array * ar)

Definition at line 507 of file h5dmr.cc.

◆ array_add_dimensions_non_dimscale()

bool array_add_dimensions_non_dimscale ( HDF5Array * ar,
const string & varname,
const eos5_dim_info_t & eos5_dim_info )

Definition at line 527 of file h5dmr.cc.

◆ breadth_first()

bool breadth_first ( hid_t file_id,
hid_t pid,
const char * gname,
D4Group * par_grp,
const char * fname,
bool use_dimscale,
bool is_eos5,
vector< link_info_t > & hdf5_hls,
eos5_dim_info_t & eos5_dim_info,
vector< string > & handled_cv_names )

bool breadth_first(const hid_t file_id,hid_t pid, const char gname, D4Group par_grp, const char *fname,bool use_dimscale,bool is_eos5, vector<link_info_t> & hdf5_hls, eos5_dim_info_t & eos5_dim_info, vector<string> & handled_cv_names)

Parameters
file_idfile_id(this is necessary for searching the hardlinks of a dataset)
pidgroup id
gnamegroup name (the absolute path from the root group)
par_grpDAP4 parent group
fnamethe HDF5 file name( necessary parameters for HDF5 Arrays)
use_dimscalewhether dimension scales are used.
is_eos5whether this is an HDF-EOS5 file.
hdf5_hlsthe vector to save all the hardlink info.
eos5_dim_infoin/out the struct to save the HDF-EOS5 dimension info.
handled_cv_namesin/out the vector to remember the handled cv names(for the use of DAP4 coverage support)
Returns
true,
Remarks
hard link is treated as a dataset.
will return error message to the DAP interface.
The reason to use breadth_first is that the DMR representation
needs to show the dimension names and the variables under the group before showing the group names. So we use this search. This is for the default option.
See also
depth_first(hid_t pid, char *gname, DDS & dds, const char *fname) in h5dds.cc

To keep track of soft links.

Definition at line 116 of file h5dmr.cc.

◆ build_gd_info()

void build_gd_info ( const HE5Grid & gd,
unordered_map< string, eos5_grid_info_t > & gridname_to_info )

Definition at line 2931 of file h5dmr.cc.

◆ build_grp_dim_path()

void build_grp_dim_path ( const string & eos5_obj_name,
const vector< HE5Dim > & dim_list,
unordered_map< string, vector< HE5Dim > > & grppath_to_dims,
HE5_TYPE e5_type )

Definition at line 1588 of file h5dmr.cc.

◆ build_var_dim_path()

void build_var_dim_path ( const string & eos5_obj_name,
const vector< HE5Var > & var_list,
unordered_map< string, vector< string > > & varpath_to_dims,
HE5_TYPE e5_type,
bool is_geo )

Definition at line 1637 of file h5dmr.cc.

◆ check_soft_external_links()

bool check_soft_external_links ( D4Group * par_grp,
hid_t pid,
int & slinkindex,
const char * gname,
const vector< char > & oname,
bool handle_softlink )

Definition at line 252 of file h5dmr.cc.

◆ get_hardlink_dmr()

string get_hardlink_dmr ( hid_t h5obj_id,
const string & oname )

Definition at line 1127 of file h5dmr.cc.

◆ get_softlink()

void get_softlink ( D4Group * par_grp,
hid_t h5obj_id,
const string & oname,
int index,
size_t val_size )

will put softlink information into DAP4.

Parameters
par_grpDAP4 group
h5_obj_idobject id
onameobject name: absolute name of a group
indexLink index
val_sizevalue size
Returns
void
Remarks
In case of error, it throws an exception

Definition at line 1069 of file h5dmr.cc.

◆ get_strmetadata_num()

int get_strmetadata_num ( const string & meta_str)

Definition at line 1481 of file h5dmr.cc.

◆ handle_absolute_path_cv()

void handle_absolute_path_cv ( const D4Group * d4_grp,
string & coord_name )

Definition at line 2163 of file h5dmr.cc.

◆ handle_actual_dataset()

void handle_actual_dataset ( D4Group * par_grp,
hid_t pid,
const string & full_path_name,
const string & fname,
bool use_dimscale,
bool is_eos5,
eos5_dim_info_t & eos5_dim_info )

Definition at line 281 of file h5dmr.cc.

◆ handle_child_grp()

void handle_child_grp ( hid_t file_id,
hid_t pid,
const char * gname,
D4Group * par_grp,
const char * fname,
bool use_dimscale,
bool is_eos5,
vector< link_info_t > & hdf5_hls,
eos5_dim_info_t & eos5_dim_info,
vector< string > & handled_cv_names,
const vector< char > & oname )

Definition at line 384 of file h5dmr.cc.

◆ handle_eos5_datasets()

void handle_eos5_datasets ( D4Group * par_grp,
const char * gname,
eos5_dim_info_t & eos5_dim_info )

Definition at line 343 of file h5dmr.cc.

◆ handle_pure_dimension()

void handle_pure_dimension ( D4Group * par_grp,
hid_t pid,
const vector< char > & oname,
bool is_eos5,
const string & full_path_name )

Definition at line 306 of file h5dmr.cc.

◆ handle_relative_path_cv()

void handle_relative_path_cv ( const D4Group * d4_grp,
string & coord_name )

Definition at line 2175 of file h5dmr.cc.

◆ handle_relative_path_cvname_internal()

void handle_relative_path_cvname_internal ( const D4Group * d4_grp,
string & coord_name,
unsigned short sep_count )

Definition at line 2208 of file h5dmr.cc.

◆ handle_vlen_int_float()

void handle_vlen_int_float ( D4Group * d4_grp,
hid_t pid,
const string & vname,
const string & var_path,
const string & filename,
hid_t dset_id )

Definition at line 3193 of file h5dmr.cc.

◆ is_eos5_grid_grp()

bool is_eos5_grid_grp ( D4Group * d4_group,
const eos5_dim_info_t & eos5_dim_info,
eos5_grid_info_t & eg_info )

Definition at line 2877 of file h5dmr.cc.

◆ make_attributes_to_cf()

void make_attributes_to_cf ( BaseType * var,
const eos5_dim_info_t & eos5_dim_info )

Definition at line 3163 of file h5dmr.cc.

◆ make_coord_names_fpath()

void make_coord_names_fpath ( D4Group * d4_grp,
vector< string > & coord_names )

Definition at line 2112 of file h5dmr.cc.

◆ map_h5_attrs_to_dap4()

void map_h5_attrs_to_dap4 ( hid_t h5_objid,
D4Group * d4g,
BaseType * d4b,
Structure * d4s,
int flag )

Definition at line 821 of file h5dmr.cc.

◆ map_h5_dset_hardlink_to_d4()

void map_h5_dset_hardlink_to_d4 ( hid_t h5_dsetid,
const string & full_path,
BaseType * d4b,
Structure * d4s,
int flag )

Definition at line 995 of file h5dmr.cc.

◆ map_h5_varpath_to_dap4_attr()

void map_h5_varpath_to_dap4_attr ( D4Group * d4g,
BaseType * d4b,
Structure * d4s,
const string & varpath,
short flag )

Definition at line 1033 of file h5dmr.cc.

◆ no_eos5_grid_vars_in_grp()

bool no_eos5_grid_vars_in_grp ( D4Group * d4_group,
const eos5_grid_info_t & eg_info )

Definition at line 2897 of file h5dmr.cc.

◆ obtain_coord_names()

void obtain_coord_names ( Array * ar,
vector< string > & coord_names )

Definition at line 2084 of file h5dmr.cc.

◆ obtain_ds_name_array_maps()

void obtain_ds_name_array_maps ( D4Group * d4_grp,
unordered_map< string, Array * > & dsn_array_maps,
const vector< string > & handled_all_cv_names )

Definition at line 2256 of file h5dmr.cc.

◆ obtain_ds_name_array_maps_internal()

void obtain_ds_name_array_maps_internal ( BaseType * v,
unordered_map< string, Array * > & dsn_array_maps,
const vector< string > & handled_all_cv_names )

Definition at line 2278 of file h5dmr.cc.

◆ obtain_eos5_dim()

bool obtain_eos5_dim ( const string & varname,
const unordered_map< string, vector< string > > & varpath_to_dims,
vector< string > & dimnames )

Definition at line 1710 of file h5dmr.cc.

◆ obtain_eos5_dims()

void obtain_eos5_dims ( hid_t fileid,
eos5_dim_info_t & eos5_dim_info )

Definition at line 1497 of file h5dmr.cc.

◆ obtain_eos5_grp_dim()

bool obtain_eos5_grp_dim ( const string & grpname,
const unordered_map< string, vector< HE5Dim > > & grppath_to_dims,
vector< string > & dimnames )

Definition at line 1724 of file h5dmr.cc.

◆ obtain_handled_dim_names()

void obtain_handled_dim_names ( Array * var,
unordered_set< string > & handled_dim_names )

Definition at line 2415 of file h5dmr.cc.

◆ obtain_hdf5_object_name()

void obtain_hdf5_object_name ( hid_t pid,
hsize_t obj_index,
const char * gname,
vector< char > & oname )

Definition at line 228 of file h5dmr.cc.

◆ obtain_multi_string_coord_names()

void obtain_multi_string_coord_names ( D4Attribute * d4_attr,
vector< string > & coord_names )

Definition at line 2101 of file h5dmr.cc.

◆ obtain_new_varname()

string obtain_new_varname ( const string & varname,
bool use_dimscale,
bool is_eos5 )

Definition at line 791 of file h5dmr.cc.

◆ obtain_no_path_cv()

bool obtain_no_path_cv ( D4Group * d4_grp,
string & coord_name )

Definition at line 2132 of file h5dmr.cc.

◆ obtain_struct_metadata_info()

void obtain_struct_metadata_info ( hid_t ecs_grp_id,
vector< string > & s_oname,
vector< bool > & smetatype,
int & strmeta_num_total,
bool & strmeta_no_suffix,
hsize_t nelems )

Definition at line 1243 of file h5dmr.cc.

◆ obtain_struct_metadata_value()

int obtain_struct_metadata_value ( hid_t ecs_grp_id,
const vector< string > & s_oname,
const vector< bool > & smetatype,
hsize_t nelems,
vector< string > & strmeta_value,
string & total_strmeta_value )

Definition at line 1337 of file h5dmr.cc.

◆ obtain_struct_metadata_value_internal()

int obtain_struct_metadata_value_internal ( hid_t ecs_grp_id,
const vector< string > & s_oname,
vector< string > & strmeta_value,
string & total_strmeta_value,
const string & finstr,
hsize_t i )

Definition at line 1446 of file h5dmr.cc.

◆ obtain_unlim_pure_dim_size()

hsize_t obtain_unlim_pure_dim_size ( hid_t pid,
const string & dname )

Definition at line 1737 of file h5dmr.cc.

◆ obtain_unlim_pure_dim_size_internal()

hsize_t obtain_unlim_pure_dim_size_internal ( hid_t dset_id,
const string & dname,
const string & reference_name )

Definition at line 1764 of file h5dmr.cc.

◆ obtain_unlim_pure_dim_size_internal_value()

hsize_t obtain_unlim_pure_dim_size_internal_value ( hid_t dset_id,
hid_t attr_id,
hid_t atype_id,
const string & reference_name,
const string & dname )

Definition at line 1792 of file h5dmr.cc.

◆ read_objects()

void read_objects ( D4Group * d4_grp,
hid_t pid,
const string & varname,
const string & filename,
hid_t dset_id,
bool use_dimscale,
bool is_eos5,
eos5_dim_info_t & eos5_dim_info )

Definition at line 478 of file h5dmr.cc.

◆ read_objects_base_type()

void read_objects_base_type ( D4Group * d4_grp,
hid_t pid,
const string & varname,
const string & filename,
hid_t dset_id,
bool use_dimscale,
bool is_eos5,
eos5_dim_info_t & eos5_dim_info )

const string & filename,hid_t dset_id, bool use_dimscale bool is_eos5, eos5_dim_info_t eos5_dim_info)

Definition at line 576 of file h5dmr.cc.

◆ read_objects_basetype_add_eos5_grid_mapping()

void read_objects_basetype_add_eos5_grid_mapping ( const eos5_dim_info_t & eos5_dim_info,
BaseType * new_var,
const HDF5Array * ar )

Definition at line 544 of file h5dmr.cc.

◆ read_objects_basetype_attr_hl()

void read_objects_basetype_attr_hl ( const string & varname,
BaseType * bt,
hid_t dset_id,
bool is_eos5 )

Definition at line 663 of file h5dmr.cc.

◆ read_objects_structure()

void read_objects_structure ( D4Group * d4_grp,
const string & varname,
const string & filename,
hid_t dset_id,
bool use_dimscale,
bool is_eos5 )

fills in information of a structure dataset (name, data type, data space) into a DAP4 group. HDF5 compound datatype will map to DAP structure.

Parameters
d4_grpDAP4 group
varnameAbsolute name of structure
filenameThe HDF5 file name that maps to the DDS dataset name.
dset_idHDF5 dataset ID
use_dimscaleboolean that indicates if dimscale is used.
is_eos5boolean that indicates if this is an HDF-EOS5 file.
Exceptions
errora string of error message to the dods interface.

Definition at line 696 of file h5dmr.cc.

◆ read_objects_structure_arrays()

void read_objects_structure_arrays ( D4Group * d4_grp,
Structure * structure,
const string & varname,
const string & newvarname,
const string & filename,
hid_t dset_id,
bool is_eos5 )

Definition at line 720 of file h5dmr.cc.

◆ read_objects_structure_scalar()

void read_objects_structure_scalar ( D4Group * d4_grp,
Structure * structure,
const string & varname,
hid_t dset_id,
bool is_eos5 )

Definition at line 779 of file h5dmr.cc.

◆ read_struct_metadata()

string read_struct_metadata ( hid_t s_file_id)

EOS5 handling.

Definition at line 1177 of file h5dmr.cc.

◆ remove_empty_coord_names()

void remove_empty_coord_names ( vector< string > & coord_names)

Definition at line 2243 of file h5dmr.cc.

◆ reorder_vars()

void reorder_vars ( D4Group * d4_grp,
const map< string, Array * > & coname_array_maps,
const map< string, Array * > & dc_array_maps )

Definition at line 2427 of file h5dmr.cc.

◆ reorder_vars_internal()

void reorder_vars_internal ( D4Group * d4_grp,
const vector< int > & cv_pos,
const vector< BaseType * > & cv_obj_ptr,
int stop_index )

Definition at line 2490 of file h5dmr.cc.

◆ reorder_vars_internal_final_phase()

void reorder_vars_internal_final_phase ( D4Group * d4_grp,
const vector< int > & mov_cv_pos,
const vector< int > & mov_front_pos,
const vector< BaseType * > & mov_front_v_ptr,
const vector< BaseType * > & mov_cv_ptr )

Definition at line 2566 of file h5dmr.cc.

◆ write_dap4_attr()

void write_dap4_attr ( hid_t attr_id,
libdap::D4Attribute * d4_attr,
hid_t ty_id,
const DSattr_t & attr_inst )

Definition at line 916 of file h5dmr.cc.

◆ write_dap4_attr_value()

void write_dap4_attr_value ( D4Attribute * d4_attr,
hid_t ty_id,
hsize_t nelmts,
char * tempvalue,
size_t elesize = 0 )

Definition at line 956 of file h5dmr.cc.

Variable Documentation

◆ obj_paths

HDF5PathFinder obj_paths

A variable for remembering visited paths to break cyclic HDF5 groups.

Definition at line 73 of file h5dmr.cc.