27#ifndef I_HDF5RequestHandler_H
28#define I_HDF5RequestHandler_H
33#include "BESRequestHandler.h"
34#include "HDF5_DataMemCache.h"
35#include <BESDDSResponse.h>
36#include <BESDataDDSResponse.h>
67 static bool get_usecf() {
return _usecf;}
68 static bool get_pass_fileid() {
return _pass_fileid;}
69 static bool get_disable_structmeta() {
return _disable_structmeta;}
70 static bool get_disable_ecsmeta() {
return _disable_ecsmeta;}
71 static bool get_keep_var_leading_underscore() {
return _keep_var_leading_underscore;}
72 static bool get_check_name_clashing() {
return _check_name_clashing;}
73 static bool get_add_path_attrs() {
return _add_path_attrs;}
74 static bool get_drop_long_string() {
return _drop_long_string;}
75 static bool get_fillvalue_check() {
return _fillvalue_check;}
76 static bool get_check_ignore_obj() {
return _check_ignore_obj;}
77 static bool get_force_flatten_coor_attr() {
return _flatten_coor_attr;}
78 static bool get_eos5_rm_convention_attr_path() {
return _eos5_rm_convention_attr_path;}
79 static bool get_dmr_long_int() {
return _dmr_long_int;}
80 static bool get_no_zero_size_fullnameattr() {
return _no_zero_size_fullnameattr;}
81 static bool get_enable_coord_attr_add_path() {
return _enable_coord_attr_add_path;}
83 static bool get_usecfdmr() {
return _usecfdmr;}
84 static bool get_add_dap4_coverage() {
return _add_dap4_coverage;}
87 static bool get_default_handle_dimension() {
return _default_handle_dimension;}
89 static void set_dmr_64bit_int(libdap::DMR *dmr) { dmr_int64 = dmr;}
90 static libdap::DMR* get_dmr_64bit_int() {
return dmr_int64;}
93 static string get_stp_east_filename() {
return _stp_east_filename;}
94 static string get_stp_north_filename() {
return _stp_north_filename;}
97 static unsigned int get_mdcache_entries() {
return _mdcache_entries;}
98 static unsigned int get_lrdcache_entries() {
return _lrdcache_entries;}
99 static unsigned int get_srdcache_entries() {
return _srdcache_entries;}
100 static float get_cache_purge_level() {
return _cache_purge_level;}
103 static ObjMemCache* get_lrdata_mem_cache() {
return lrdata_mem_cache;}
104 void set_lrdata_mem_cache(
ObjMemCache* my_lrdata_mem_cache)
105 {lrdata_mem_cache=my_lrdata_mem_cache;}
107 static ObjMemCache* get_srdata_mem_cache() {
return srdata_mem_cache;}
108 void set_srdata_mem_cache(
ObjMemCache* my_srdata_mem_cache)
109 {srdata_mem_cache=my_srdata_mem_cache;}
111 static bool get_common_cache_dirs() {
return _common_cache_dirs;}
112 static void get_lrd_cache_dir_list(std::vector<string>& cur_lrd_cache_dir_list)
113 { cur_lrd_cache_dir_list = lrd_cache_dir_list;}
115 static void get_lrd_non_cache_dir_list(std::vector<string>& cur_lrd_non_cache_dir_list)
116 { cur_lrd_non_cache_dir_list = lrd_non_cache_dir_list;}
118 static void get_lrd_var_cache_file_list(std::vector<string>& cur_lrd_var_cache_file_list)
119 { cur_lrd_var_cache_file_list = lrd_var_cache_file_list;}
123 static bool get_use_disk_cache() {
return _use_disk_cache;}
124 static string get_disk_cache_dir() {
return _disk_cache_dir;}
125 static string get_disk_cachefile_prefix() {
return _disk_cachefile_prefix;}
126 static unsigned long long get_disk_cache_size() {
return _disk_cache_size;}
127 static bool get_disk_cache_comp_data() {
return _disk_cache_comp_data;}
128 static bool get_disk_cache_float_only_comp(){
return _disk_cache_float_only_comp_data;}
129 static float get_disk_comp_threshold() {
return _disk_cache_comp_threshold;}
130 static unsigned long get_disk_var_size() {
return _disk_cache_var_size; }
132 static bool get_use_eosgeo_cachefile() {
return _use_latlon_disk_cache; }
133 static string get_latlon_disk_cache_dir() {
return _latlon_disk_cache_dir;}
134 static string get_latlon_disk_cachefile_prefix() {
return _latlon_disk_cachefile_prefix;}
135 static long get_latlon_disk_cache_size() {
return _latlon_disk_cache_size;}
138 static bool get_escape_utf8_attr() {
return _escape_utf8_attr;}
147 void static load_config();
151 static unsigned int _mdcache_entries;
152 static unsigned int _lrdcache_entries;
153 static unsigned int _srdcache_entries;
154 static float _cache_purge_level;
165 static bool _pass_fileid;
166 static bool _disable_structmeta;
167 static bool _disable_ecsmeta;
168 static bool _keep_var_leading_underscore;
169 static bool _check_name_clashing;
170 static bool _add_path_attrs;
171 static bool _drop_long_string;
172 static bool _fillvalue_check;
173 static bool _check_ignore_obj;
174 static bool _flatten_coor_attr;
175 static bool _eos5_rm_convention_attr_path;
176 static bool _dmr_long_int;
177 static bool _no_zero_size_fullnameattr;
178 static bool _enable_coord_attr_add_path;
180 static bool _usecfdmr;
181 static bool _add_dap4_coverage;
184 static bool _default_handle_dimension;
185 static std::string _stp_east_filename;
186 static std::string _stp_north_filename;
188 static libdap::DMR *dmr_int64;
189 static bool _use_disk_cache;
190 static std::string _disk_cache_dir;
191 static std::string _disk_cachefile_prefix;
192 static unsigned long long _disk_cache_size;
193 static bool _disk_cache_comp_data;
194 static bool _disk_cache_float_only_comp_data;
195 static float _disk_cache_comp_threshold;
196 static unsigned long _disk_cache_var_size;
199 static bool _use_disk_meta_cache;
200 static bool _use_disk_dds_cache;
201 static std::string _disk_meta_cache_path;
203 static bool _use_latlon_disk_cache;
204 static long _latlon_disk_cache_size;
205 static std::string _latlon_disk_cache_dir;
206 static std::string _latlon_disk_cachefile_prefix;
208 static bool _common_cache_dirs;
210 static bool _escape_utf8_attr;
212 static std::vector<std::string> lrd_cache_dir_list;
213 static std::vector<string> lrd_non_cache_dir_list;
214 static std::vector<string> lrd_var_cache_file_list;
215 static bool obtain_lrd_common_cache_dirs();
220 static void get_dds_with_attributes(
BESDDSResponse*bdds,
BESDataDDSResponse*data_bdds,
const std::string &container_name,
const std::string &filename,
const std::string &dds_cache_fname,
const std::string &das_cache_fname,
bool dds_from_dc,
bool das_from_dc,
bool build_data);
221 static void get_dds_without_attributes_datadds(
BESDataDDSResponse*data_bdds,
const std::string &container_name,
const std::string &filename);
223 static void read_dds_from_disk_cache(
BESDDSResponse* bdds,
BESDataDDSResponse* data_bdds,
bool build_data,
const std::string & container_name,
const std::string & h5_fname,
224 const std::string & dds_cache_fname,
const std::string &das_cache_fname, hid_t h5_fd,
bool das_from_dc);
226 static void add_das_to_dds(libdap::DDS *dds,
const std::string &container_name,
const std::string &filename,
const std::string &das_cache_fname,hid_t h5_fd,
bool das_from_dc);
228 static bool write_dds_to_disk_cache(
const std::string& dds_cache_fname,libdap::DDS *dds_ptr);
230 static bool write_das_to_disk_cache(
const std::string & das_cache_fname, libdap::DAS *das_ptr);
232 static bool read_das_from_disk_cache(
const std::string & cache_filename,libdap::DAS *das_ptr);
Holds a DDS object within the BES.
Represents an OPeNDAP DataDDS DAP2 data object within the BES.
Structure storing information used by the BES to handle the request.
Represents a specific data type request handler.
An in-memory cache for DapObj (DAS, DDS, ...) objects.