libdap Updated for version 3.21.1
libdap4 is an implementation of OPeNDAP's DAP protocol.
|
Hold attribute data for a DAP2 dataset. More...
#include <DAS.h>
Public Member Functions | |
virtual AttrTable * | container () |
Returns the current attribute container when multiple files used to build this DAS. | |
virtual string | container_name () const |
Returns the name of the current attribute container when multiple files used to build this DAS. | |
virtual void | container_name (const string &cn) |
Sets the name of the current attribute container when multiple files used to build this DAS. | |
DAS () | |
DAS (const DAS &das) | |
virtual void | erase () |
erase all attributes in this DAS | |
string | get_name (AttrTable::Attr_iter &i) |
Returns the name of the referenced variable attribute table. | |
virtual unsigned int | get_size () const |
Returns the number of attributes in the current attribute table. | |
AttrTable * | get_table (AttrTable::Attr_iter &i) |
Returns the referenced variable attribute table. | |
virtual AttrTable * | get_table (const string &name) |
Returns the variable attribute table with the given name. | |
virtual AttrTable * | get_top_level_attributes () |
Returns the top most set of attributes. | |
DAS & | operator= (const DAS &rhs) |
AttrTable::Attr_iter | var_begin () |
Returns a reference to the attribute table for the first variable. | |
AttrTable::Attr_iter | var_end () |
virtual | ~DAS () |
add_table() | |
Adds an attribute table to the DAS. | |
virtual AttrTable * | add_table (const string &name, AttrTable *at) |
Adds a variable attribute table to the DAS or the current dataset container attribute table. | |
parse() | |
Reads a DAS in from an external source. | |
virtual void | parse (string fname) |
Reads a DAS from the named file. | |
virtual void | parse (int fd) |
Read attributes from a file descriptor. | |
virtual void | parse (FILE *in=stdin) |
Reads a DAS from an open file descriptor. | |
virtual void | print (FILE *out, bool dereference=false) |
virtual void | print (ostream &out, bool dereference=false) |
virtual void | dump (ostream &strm) const |
dumps information about this object | |
Hold attribute data for a DAP2 dataset.
The Data Attribute Structure is a set of name-value pairs used to describe the data in a particular dataset. The name-value pairs are called the `‘attributes’'. The values may be of any of the DAP2 simple data types (Byte, Int16, UInt16, Int32, UInt32, Float32, Float64, String and URL), and may be scalar or vector. Note that all values are actually stored as String data, making the easy to read/check using a web browser.
A value may also consist of a set of other name-value pairs. This makes it possible to nest collections of attributes, giving rise to a hierarchy of attributes. DAP2 uses this structure to provide information about variables in a dataset. For example, consider the dataset used in the DDS example earlier.
In the following example of a DAS, several of the attribute collections have names corresponding to the names of variables in the DDS example. The attributes in that collection are said to belong to that variable. For example, the lat
variable has an attribute units'' of
degrees_north''.
Attributes { GLOBAL { String title "Reynolds Optimum Interpolation (OI) SST"; } lat { String units "degrees_north"; String long_name "Latitude"; Float64 actual_range 89.5, -89.5; } lon { String units "degrees_east"; String long_name "Longitude"; Float64 actual_range 0.5, 359.5; } time { String units "days since 1-1-1 00:00:00"; String long_name "Time"; Float64 actual_range 726468., 729289.; String delta_t "0000-00-07 00:00:00"; } sst { String long_name "Weekly Means of Sea Surface Temperature"; Float64 actual_range -1.8, 35.09; String units "degC"; Float64 add_offset 0.; Float64 scale_factor 0.0099999998; Int32 missing_value 32767; } }
Attributes may have arbitrary names, although in most datasets it is important to choose these names so a reader will know what they describe. In the above example, the `‘GLOBAL’' attribute provides information about the entire dataset.
Data attribute information is an important part of the the data provided to a DAP2 client by a server, and the DAS is how this data is packaged for sending (and how it is received).
The DAS class is simply a sequence of attribute tables and names. It may be thought of as the top level of the attribute hierarchy.
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
|
virtual |
dumps information about this object
Displays the pointer value of this instance and then calls parent dump
strm | C++ i/o stream to dump the information to |
Implements libdap::DapObj.
|
virtual |
string libdap::DAS::get_name | ( | AttrTable::Attr_iter & | i | ) |
|
virtual |
Returns the number of attributes in the current attribute table.
If the there is a container set, then return the number of variable attribute tables for the current container. If not set then return the number of current attribute tables in the outermost attribute table.
AttrTable * libdap::DAS::get_table | ( | AttrTable::Attr_iter & | i | ) |
|
inlinevirtual |
|
virtual |
Reads a DAS from an open file descriptor.
Read attributes from in (which defaults to stdin). If dasrestart() fails, return false, otherwise return the status of dasparse().
|
virtual |
Read attributes from a file descriptor.
If the file descriptor cannot be fdopen'd, return false, otherwise return the status of the mfunc parse.
|
virtual |
|
virtual |
Print the DAS
Creates an ASCII representation of a DAS on the given output stream.
When an identifier contains a character that contains characters that cannot be present in a URL (e.g., a space) AttrTable::print replaces those characters with WWW escape codes. 7/13/2001 jhrg
out | output FILE on which to print the DAS |
dereference | If true, follow aliases. Default is false. |
|
virtual |
Creates an ASCII representation of a DAS on the given output stream.
When an identifier contains a character that contains characters that cannot be present in a URL (e.g., a space) AttrTable::print replaces those characters with WWW escape codes. 7/13/2001 jhrg
out | output ostream on which to print the DAS |
dereference | If true, follow aliases. Default is false. |
AttrTable::Attr_iter libdap::DAS::var_begin | ( | ) |
AttrTable::Attr_iter libdap::DAS::var_end | ( | ) |