bes Updated for version 3.20.13
|
Extend libdap::Array so that a handler can read data using a DMR++ file. More...
#include <DmrppArray.h>
Public Member Functions | |
virtual unsigned long | add_chunk (const std::string &byte_order, const std::string &fill_value, libdap::Type fv_type, unsigned long long chunk_size, const std::vector< unsigned long long > &position_in_array) |
virtual unsigned long | add_chunk (const std::string &byte_order, unsigned long long size, unsigned long long offset, const std::string &position_in_array) |
Adds a chunk to the vector of chunk refs (byteStreams) and returns the size of the chunks internal vector. | |
virtual unsigned long | add_chunk (const std::string &byte_order, unsigned long long size, unsigned long long offset, const std::vector< unsigned long long > &position_in_array) |
Adds a chunk to the vector of chunk refs (byteStreams) and returns the size of the chunks internal vector. | |
virtual unsigned long | add_chunk (std::shared_ptr< http::url > d_data_url, const std::string &byte_order, unsigned long long size, unsigned long long offset, const std::string &position_in_array) |
Adds a chunk to the vector of chunk refs (byteStreams) and returns the size of the chunks internal vector. | |
virtual unsigned long | add_chunk (std::shared_ptr< http::url > d_data_url, const std::string &byte_order, unsigned long long size, unsigned long long offset, const std::vector< unsigned long long > &position_in_array) |
Adds a chunk to the vector of chunk refs (byteStreams) and returns the size of the chunks internal vector. | |
DmrppArray (const DmrppArray &)=default | |
DmrppArray (const std::string &n, const std::string &d, libdap::BaseType *v) | |
DmrppArray (const std::string &n, libdap::BaseType *v) | |
DmrppArray (const string &n, BaseType *v, shared_ptr< DMZ > dmz) | |
DmrppArray (const string &n, const string &d, BaseType *v, shared_ptr< DMZ > dmz) | |
virtual void | dump (ostream &strm) const |
virtual void | dump (std::ostream &strm) const |
virtual bool | get_attributes_loaded () const |
Have the attributes been loaded? | |
virtual std::string | get_byte_order () const |
virtual const std::vector< unsigned long long > & | get_chunk_dimension_sizes () const |
The chunk dimension sizes held in a const vector. | |
virtual unsigned long long | get_chunk_size_in_elements () const |
Get the number of elements in this chunk. | |
virtual bool | get_chunks_loaded () const |
Have the chunks been loaded? | |
virtual size_t | get_chunks_size () const |
Use this when the number of chunks is needed. | |
virtual std::string | get_fill_value () const |
virtual libdap::Type | get_fill_value_type () const |
virtual std::string | get_filters () const |
Return the names of all the filters in the order they were applied. | |
virtual const std::vector< std::shared_ptr< Chunk > > & | get_immutable_chunks () const |
A const reference to the vector of chunks. | |
virtual std::vector< unsigned long long > | get_shape (bool constrained) |
Get the array shape. | |
virtual unsigned long long | get_size (bool constrained=false) |
Return the total number of elements in this Array. | |
virtual bool | get_uses_fill_value () const |
virtual const pugi::xml_node & | get_xml_node () const |
virtual void | ingest_byte_order (const std::string &byte_order_string) |
Parses the text content of the XML element chunks:byteOrder. | |
virtual void | ingest_compression_type (const std::string &compression_type_string) |
Parses the text content of the XML element h4:chunkDimensionSizes into the internal vector<unsigned int> representation. | |
virtual bool | is_compact_layout () const |
Returns true if this object utilizes COMPACT layout. | |
virtual bool | is_filters_empty () const |
virtual void | load_attributes (libdap::BaseType *btp) |
Load the attribute information for this variable. | |
virtual void | load_chunks (libdap::BaseType *btp) |
Load chunk information for this variable. | |
DmrppArray & | operator= (const DmrppArray &rhs) |
virtual void | parse_chunk_dimension_sizes (const std::string &chunk_dim_sizes_string) |
Set the dimension sizes for a chunk. | |
void | print_chunks_element (libdap::XMLWriter &xml, const std::string &name_space="") |
Print the Chunk information. | |
void | print_compact_element (libdap::XMLWriter &xml, const std::string &name_space="", const std::string &encoded="") |
Print the Compact base64-encoded information. | |
virtual void | print_dap4 (libdap::XMLWriter &writer, bool constrained=false) |
Shadow libdap::Array::print_dap4() - optionally prints DMR++ chunk information. | |
void | print_dmrpp (libdap::XMLWriter &writer, bool constrained=false) |
Print the DMR++ response for the Scalar types. | |
virtual libdap::BaseType * | ptr_duplicate () |
bool | read () override |
Read data for the array. | |
virtual void | set_attributes_loaded (bool state) |
void | set_chunk_dimension_sizes (const std::vector< unsigned long long > &chunk_dims) |
Set the value of the chunk dimension sizes given a vector of HDF5 hsize_t. | |
virtual void | set_chunks_loaded (bool state) |
void | set_compact (bool value) |
Set the value of the compact property. | |
virtual void | set_fill_value_string (const std::string &fv) |
Set the fill value (using a string) | |
virtual void | set_fill_value_type (libdap::Type t) |
Set the libdap data type to use with the fill value. | |
void | set_filter (const std::string &value) |
Set the value of the filters property. | |
void | set_send_p (bool state) override |
virtual void | set_uses_fill_value (bool ufv) |
Set the uses_fill_value property. | |
virtual void | set_xml_node (pugi::xml_node node) |
virtual bool | twiddle_bytes () const |
Returns true if this object utilizes shuffle compression. | |
Static Public Attributes | |
static std::string | d_dmrpp_ns = "http://xml.opendap.org/dap/dmrpp/1.0.0#" |
The DMR++ XML namespace. | |
static std::string | d_ns_prefix = "dmrpp" |
The XML namespace prefix to use. | |
static bool | d_print_chunks = false |
if true, print_dap4() prints chunk elements | |
Protected Member Functions | |
virtual char * | read_atomic (const std::string &name) |
read method for the atomic types | |
Friends | |
class | DmrppArrayTest |
void | process_one_chunk (std::shared_ptr< Chunk > chunk, DmrppArray *array, const vector< unsigned long long > &constrained_array_shape) |
void | process_one_chunk_unconstrained (std::shared_ptr< Chunk > chunk, const vector< unsigned long long > &chunk_shape, DmrppArray *array, const vector< unsigned long long > &array_shape) |
Extend libdap::Array so that a handler can read data using a DMR++ file.
Definition at line 68 of file DmrppArray.h.
|
inline |
Definition at line 122 of file DmrppArray.h.
|
inline |
Definition at line 124 of file DmrppArray.h.
|
inline |
Definition at line 127 of file DmrppArray.h.
|
inline |
Definition at line 130 of file DmrppArray.h.
|
virtualinherited |
Definition at line 297 of file DmrppCommon.cc.
|
virtualinherited |
Adds a chunk to the vector of chunk refs (byteStreams) and returns the size of the chunks internal vector.
NB: This method is used by build_dmrpp during the production of the dmr++ file. The fact that the URL is not set is fine in that circumstance because when the DMZ parser reads the dmr++ the chunks without the explicit URL (dmrpp:href attribute) will inherit the primary URL (dmrpp:href) value from the top level Dataset element.
byte_order | The stored byte order of the chunk |
size | The sie of the chunk |
offset | Chunk offset in the target dataset binary object. |
position_in_array | A string description of the chunks position in the array with a nominal format of [x,y,...,z] where x, ..., are unsigned integers |
Definition at line 260 of file DmrppCommon.cc.
|
virtualinherited |
Adds a chunk to the vector of chunk refs (byteStreams) and returns the size of the chunks internal vector.
NB: This method is used by build_dmrpp during the production of the dmr++ file. The fact that the URL is not set is fine in that circumstance because when the DMZ parser reads the dmr++ the chunks without the explicit URL (dmrpp:href attributes) will inherit the primary URL (dmrpp:href) value from the top level Dataset element.
byte_order | The stored byte order of the chunk |
size | The sie of the chunk |
offset | Chunk offset in the target dataset binary object. |
position_in_array | Described as a vector of unsigned long long values |
Definition at line 285 of file DmrppCommon.cc.
|
virtualinherited |
Adds a chunk to the vector of chunk refs (byteStreams) and returns the size of the chunks internal vector.
data_url | The URL, file or http(s) protocol, that identifies the location of the binary object that holds the referenced chunk |
byte_order | The stored byte order of the chunk |
size | The sie of the chunk |
offset | Chunk offset in the target dataset binary object. |
position_in_array | A string description of the chunks position in the array with a nominal format of [x,y,...,z] where x, ..., are unsigned integers |
Definition at line 208 of file DmrppCommon.cc.
|
virtualinherited |
Adds a chunk to the vector of chunk refs (byteStreams) and returns the size of the chunks internal vector.
data_url | The URL, file or http(s) protocol, that identifies the location of the binary object that holds the referenced chunk |
byte_order | The stored byte order of the chunk |
size | The sie of the chunk |
offset | Chunk offset in the target dataset binary object. |
position_in_array | Described as a vector of unsigned long long values |
Definition at line 232 of file DmrppCommon.cc.
|
virtual |
Definition at line 1810 of file DmrppArray.cc.
|
virtualinherited |
Definition at line 482 of file DmrppCommon.cc.
|
inlinevirtualinherited |
Have the attributes been loaded?
Definition at line 178 of file DmrppCommon.h.
|
inlinevirtualinherited |
Definition at line 251 of file DmrppCommon.h.
|
inlinevirtualinherited |
The chunk dimension sizes held in a const vector.
Definition at line 195 of file DmrppCommon.h.
|
inlinevirtualinherited |
Get the number of elements in this chunk.
Definition at line 201 of file DmrppCommon.h.
|
inlinevirtualinherited |
Have the chunks been loaded?
Definition at line 174 of file DmrppCommon.h.
|
inlinevirtualinherited |
Use this when the number of chunks is needed.
Definition at line 191 of file DmrppCommon.h.
|
inlinevirtualinherited |
Definition at line 223 of file DmrppCommon.h.
|
inlinevirtualinherited |
Definition at line 226 of file DmrppCommon.h.
|
inlinevirtualinherited |
Return the names of all the filters in the order they were applied.
Definition at line 147 of file DmrppCommon.h.
|
inlinevirtualinherited |
A const reference to the vector of chunks.
Definition at line 185 of file DmrppCommon.h.
|
virtual |
Get the array shape.
constrained | If true, return the shape of the constrained array. |
Definition at line 596 of file DmrppArray.cc.
|
virtual |
Return the total number of elements in this Array.
constrained | If true, use the constrained size of the array, otherwise use the full size. |
Definition at line 580 of file DmrppArray.cc.
|
inlinevirtualinherited |
Definition at line 220 of file DmrppCommon.h.
|
inlinevirtualinherited |
Definition at line 181 of file DmrppCommon.h.
|
virtualinherited |
Parses the text content of the XML element chunks:byteOrder.
byte_order_string | One of "LE", "BE" |
Definition at line 177 of file DmrppCommon.cc.
|
virtualinherited |
Parses the text content of the XML element h4:chunkDimensionSizes into the internal vector<unsigned int> representation.
compression_type_string |
Definition at line 166 of file DmrppCommon.cc.
|
inlinevirtualinherited |
Returns true if this object utilizes COMPACT layout.
Definition at line 158 of file DmrppCommon.h.
|
inlinevirtualinherited |
Definition at line 153 of file DmrppCommon.h.
|
virtualinherited |
Load the attribute information for this variable.
btp |
Definition at line 519 of file DmrppCommon.cc.
|
virtualinherited |
Load chunk information for this variable.
btp | Load the chunk information for/into this variable |
Definition at line 510 of file DmrppCommon.cc.
DmrppArray & dmrpp::DmrppArray::operator= | ( | const DmrppArray & | rhs | ) |
Definition at line 550 of file DmrppArray.cc.
|
virtualinherited |
Set the dimension sizes for a chunk.
The string argument holds a space-separated list of integers that represent the dimensions of a chunk. Parse that string and store the integers in this instance.
chunk_dims | The sizes as a list of integers separated by spaces, e.g., '50 50' |
Definition at line 128 of file DmrppCommon.cc.
|
inherited |
Print the Chunk information.
<dmrpp:chunk fillValue="-32678" chunkPositionInArray="[...]"/>
Definition at line 354 of file DmrppCommon.cc.
|
inherited |
Print the Compact base64-encoded information.
Definition at line 432 of file DmrppCommon.cc.
|
virtual |
Shadow libdap::Array::print_dap4() - optionally prints DMR++ chunk information.
This version of libdap::BaseType::print_dap4() will print information about HDF5 chunks when the value of the static class filed dmrpp::DmrppCommon::d_print_chunks is true. The method DMRpp::print_dmrpp() will set the d_pprint_chunks field to true causing this method to include the chunks elements in its output. When the field's value is false, this method prints the same output as libdap::Array.
xml | Write the XML to this instance of XMLWriter |
constrained | True if the response should be constrained. False by default |
Definition at line 1699 of file DmrppArray.cc.
|
inherited |
Print the DMR++ response for the Scalar types.
xml | Write the XML to this instance of XMLWriter |
constrained | If true, print the constrained DMR. False by default. |
Definition at line 455 of file DmrppCommon.cc.
|
inlinevirtual |
Definition at line 139 of file DmrppArray.h.
|
override |
Read data for the array.
This reads data for a variable and loads it into memory. The software is specialized for reading data using HTTP for either arrays stored in one contiguous piece of memory or in a series of chunks.
BESError | Thrown when the data cannot be read, for a number of reasons, including various network I/O issues. |
Definition at line 1499 of file DmrppArray.cc.
|
protectedvirtualinherited |
read method for the atomic types
This method is used by the specializations of BaseType::read() in the 'atomic' type classes (libdap::Byte, libdap::In32, ...) to read data when those data are contained in a single chunk (i.e., using HDF5 contiguous storage).
name | The name of the variable, used for error messages |
BESInternalError | on error. |
Definition at line 328 of file DmrppCommon.cc.
|
inlinevirtualinherited |
Definition at line 179 of file DmrppCommon.h.
|
inlineinherited |
Set the value of the chunk dimension sizes given a vector of HDF5 hsize_t.
Definition at line 235 of file DmrppCommon.h.
|
inlinevirtualinherited |
Definition at line 175 of file DmrppCommon.h.
|
inlineinherited |
Set the value of the compact property.
Definition at line 163 of file DmrppCommon.h.
|
inlinevirtualinherited |
Set the fill value (using a string)
Definition at line 214 of file DmrppCommon.h.
|
inlinevirtualinherited |
Set the libdap data type to use with the fill value.
Definition at line 217 of file DmrppCommon.h.
|
inherited |
Set the value of the filters property.
Definition at line 102 of file DmrppCommon.cc.
|
override |
Definition at line 1447 of file DmrppArray.cc.
|
inlinevirtualinherited |
Set the uses_fill_value property.
Definition at line 211 of file DmrppCommon.h.
|
inlinevirtualinherited |
Definition at line 182 of file DmrppCommon.h.
|
inlinevirtualinherited |
Returns true if this object utilizes shuffle compression.
Definition at line 168 of file DmrppCommon.h.
|
friend |
Definition at line 90 of file DmrppArray.h.
|
staticinherited |
The DMR++ XML namespace.
Definition at line 135 of file DmrppCommon.h.
|
staticinherited |
The XML namespace prefix to use.
Definition at line 136 of file DmrppCommon.h.
|
staticinherited |
if true, print_dap4() prints chunk elements
Definition at line 134 of file DmrppCommon.h.