bes  Updated for version 3.20.13
h5commoncfdap.cc File Reference

Functions to generate DDS and DAS for one object(variable). More...

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <iostream>
#include <sstream>
#include <unordered_map>
#include <libdap/InternalErr.h>
#include <BESDebug.h>
#include "HDF5RequestHandler.h"
#include "h5cfdaputil.h"
#include "h5gmcfdap.h"
#include "HDF5CFByte.h"
#include "HDF5CFInt8.h"
#include "HDF5CFUInt16.h"
#include "HDF5CFInt16.h"
#include "HDF5CFUInt32.h"
#include "HDF5CFInt32.h"
#include "HDF5CFFloat32.h"
#include "HDF5CFFloat64.h"
#include "HDF5CFInt64.h"
#include "HDF5CFUInt64.h"
#include "HDF5CFStr.h"
#include "HDF5CFArray.h"
#include "HDF5CFGeoCF1D.h"
#include "HDF5CFGeoCFProj.h"
#include "HDF5CFUtil.h"
Include dependency graph for h5commoncfdap.cc:

Go to the source code of this file.

Macros

#define HANDLE_CASE(tid, type)
 
#define HANDLE_CASE(tid, type)
 

Functions

void add_cf_grid_cv_attrs (DAS &das, const vector< HDF5CF::Var * > &vars, EOS5GridPCType cv_proj_code, const vector< HDF5CF::Dimension * > &dims, const vector< double > &eos5_proj_params, const unsigned short g_suffix)
 
void add_cf_grid_cv_dap4_attrs (D4Group *d4_root, const string &cf_projection, const vector< HDF5CF::Dimension * > &dims, const vector< string > &cvar_name)
 
void add_cf_grid_cvs (DDS &dds, EOS5GridPCType cv_proj_code, float cv_point_lower, float cv_point_upper, float cv_point_left, float cv_point_right, const vector< HDF5CF::Dimension * > &dims)
 
void add_cf_grid_mapinfo_var (DDS &dds, const EOS5GridPCType grid_proj_code, const unsigned short g_suffix)
 
void add_cf_grid_mapping_attr (DAS &das, const vector< HDF5CF::Var * > &vars, const string &cf_projection, const string &dim0name, hsize_t dim0size, const string &dim1name, hsize_t dim1size)
 
void add_cf_projection_attrs (DAS &das, EOS5GridPCType cv_proj_code, const vector< double > &eos5_proj_params, const string &cf_projection)
 
void add_dap4_coverage (libdap::D4Group *d4_root, const vector< string > &coord_var_names, bool is_coard)
 
void add_gm_oneproj_var_dap4_attrs (BaseType *var, EOS5GridPCType cv_proj_code, const vector< double > &eos5_proj_params)
 
void add_gm_spcvs (libdap::D4Group *d4_root, EOS5GridPCType cv_proj_code, float cv_point_lower, float cv_point_upper, float cv_point_left, float cv_point_right, const std::vector< HDF5CF::Dimension * > &dims)
 
void add_gm_spcvs_attrs (libdap::BaseType *var, const bool is_dim0)
 
void add_grp_dap4_attr (D4Group *d4_grp, const string &attr_name, D4AttributeType attr_type, const string &attr_value)
 
void add_ll_valid_range (AttrTable *at, bool is_lat)
 
void add_var_dap4_attr (BaseType *var, const string &attr_name, D4AttributeType attr_type, const string &attr_value)
 
void check_update_int64_attr (const string &obj_name, const HDF5CF::Attribute *attr)
 
D4Attribute * gen_dap4_attr (const HDF5CF::Attribute *attr)
 
void gen_dap_oneobj_das (AttrTable *at, const HDF5CF::Attribute *attr, const HDF5CF::Var *var)
 
void gen_dap_onevar_dds (DDS &dds, const HDF5CF::Var *var, const hid_t file_id, const string &filename)
 
void gen_dap_onevar_dmr (libdap::D4Group *d4_grp, const HDF5CF::Var *var, const hid_t file_id, const string &filename)
 
void gen_dap_special_oneobj_das (AttrTable *at, const HDF5CF::Attribute *attr, const HDF5CF::Var *var)
 
void gen_dap_str_attr (AttrTable *at, const HDF5CF::Attribute *attr)
 Transfer string attributes to a DAP2 AttrTable. More...
 
string get_cf_string (string &s)
 
string get_cf_string_helper (string &s)
 
void handle_coor_attr_for_int64_var (const HDF5CF::Attribute *attr, const string &var_path, string &tempstring, bool chg_coor_value)
 
bool is_fvalue_valid (H5DataType var_dtype, const HDF5CF::Attribute *attr)
 
void map_cfh5_attr_container_to_dap4 (libdap::D4Attribute *d4_con, const HDF5CF::Attribute *attr)
 
void map_cfh5_grp_attr_to_dap4 (libdap::D4Group *d4_grp, const HDF5CF::Attribute *attr)
 
void map_cfh5_var_attrs_to_dap4 (const HDF5CF::Var *var, BaseType *d4_var)
 
void map_cfh5_var_attrs_to_dap4_int64 (const HDF5CF::Var *var, BaseType *d4_var)
 
bool need_attr_values_for_dap4 (const HDF5CF::Var *var)
 
bool need_special_attribute_handling (const HDF5CF::Attribute *attr, const HDF5CF::Var *var)
 

Detailed Description

Functions to generate DDS and DAS for one object(variable).

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

Definition in file h5commoncfdap.cc.

Macro Definition Documentation

◆ HANDLE_CASE [1/2]

#define HANDLE_CASE (   tid,
  type 
)
Value:
case tid: \
bt = new (type)(var->getNewName(),var->getFullPath()); \
break;

◆ HANDLE_CASE [2/2]

#define HANDLE_CASE (   tid,
  type 
)
Value:
case tid: \
bt = new (type)(var->getNewName(),var->getFullPath()); \
break;

Function Documentation

◆ gen_dap_str_attr()

void gen_dap_str_attr ( AttrTable *  at,
const HDF5CF::Attribute attr 
)

Transfer string attributes to a DAP2 AttrTable.

For an HDF5 string attribute stored in a HDF5CF::Attribute, transfer the value(s) of that attribute to a DAP2 AttrTable object. This function handles both single and multiple attribute value cases. It should only be called for string attributes. Except as noted below, the attribute values are escaped so that non-printable ASCII characters are represented by a backslash and an octal code (e.g. \005).

Note
If the given HDF5CF::Attribute uses UTF-8, it will still be escaped as if it were an ASCII string (or used iso-8859-1 encoding) unless the BES key H5.EscapeUTF8Attr is false (default is true).
Attributes named 'origname' or 'fullnamepath' are never escaped.
Parameters
atPut the string attribute in this DAP2 AttrTable
attrThe source attribute information

Definition at line 791 of file h5commoncfdap.cc.