#include <DataDDS.h>
Inheritance diagram for DataDDS:
Public Types | |
typedef std::vector< BaseType * >::const_iterator | Vars_citer |
typedef std::vector< BaseType * >::iterator | Vars_iter |
typedef std::vector< BaseType * >::reverse_iterator | Vars_riter |
Public Member Functions | |
void | add_var (BaseType *bt) |
Adds a copy of the variable to the DDS. Using the ptr_duplicate() method, perform a deep copy on the variable bt and adds the result to this DDS. | |
bool | check_semantics (bool all=false) |
Check the semantics of each of the variables represented in the DDS. | |
DataDDS (BaseTypeFactory *factory, const string &n="", const string &v="", const string &p="") | |
Make an instance of DataDDS A DataDDS instance is a DDS with aditional information about the version of the server from which the data came. | |
void | del_var (Vars_iter i1, Vars_iter i2) |
Removes a range of variables from the DDS. | |
void | del_var (Vars_iter i) |
Removes a variable from the DDS. | |
void | del_var (const string &n) |
Removes a variable from the DDS. | |
virtual void | dump (ostream &strm) const |
dumps information about this object | |
virtual AttrTable & | get_attr_table () |
BaseTypeFactory * | get_factory () const |
string | get_protocol () const |
int | get_protocol_major () const |
int | get_protocol_minor () const |
int | get_timeout () |
BaseType * | get_var_index (int i) |
Get a variable. | |
Vars_iter | get_vars_iter (int i) |
Get an iterator. | |
string | get_version () const |
Get the server version string, unparsed. | |
int | get_version_major () const |
Returns the major version number. | |
int | get_version_minor () const |
Returns the minor version number. | |
bool | mark (const string &name, bool state) |
Mark the send_p flag of the named variable to state. | |
void | mark_all (bool state) |
int | num_var () |
Returns the number of variables in the DDS. | |
void | parse (FILE *in=stdin) |
Parse a DDS from a file indicated by the input file descriptor. Read the persistent representation of a DDS from the FILE *in, parse it and create a matching binary object. | |
void | parse (int fd) |
Parse a DDS from a file indicated by the input file descriptor. | |
void | parse (string fname) |
Parse a DDS from a file with the given name. | |
void | print (FILE *out) |
Print the entire DDS to the specified file. | |
void | print_constrained (FILE *out) |
Print a constrained DDS to the specified file. | |
void | print_xml (FILE *out, bool constrained, const string &blob) |
BaseTypeFactory * | set_factory (BaseTypeFactory *factory) |
void | set_protocol (const string &p) |
void | set_timeout (int t) |
void | set_version (const string &v) |
void | tag_nested_sequences () |
Traverse DDS, set Sequence leaf nodes. | |
void | timeout_off () |
void | timeout_on () |
virtual void | transfer_attributes (DAS *das) |
BaseType * | var (const string &n, btp_stack *s=0) |
Find the variable with the given name. | |
BaseType * | var (const string &n, btp_stack &s) |
Vars_iter | var_begin () |
Return an iterator. | |
Vars_iter | var_end () |
Return an iterator. | |
Vars_riter | var_rbegin () |
Return a reverse iterator. | |
Vars_riter | var_rend () |
Return a reverse iterator. | |
virtual | ~DataDDS () |
File Name Accessor | |
Get and set the dataset's filename. This is the physical location on a disk where the dataset exists. The dataset name is simply a title.
| |
void | filename (const string &fn) |
string | filename () |
Dataset Name Accessors | |
Get and set the dataset's name. This is the name of the dataset itself, and is not to be confused with the name of the file or disk on which it is stored. | |
string | get_dataset_name () const |
void | set_dataset_name (const string &n) |
Protected Member Functions | |
void | duplicate (const DDS &dds) |
BaseType * | exact_match (const string &name, btp_stack *s=0) |
virtual AttrTable * | find_matching_container (AttrTable::entry *source, BaseType **dest_variable) |
BaseType * | leaf_match (const string &name, btp_stack *s=0) |
Update: I removed the DEFAULT_BASETYPE_FACTORY switch because it caused more confusion than it avoided. See Trac #130.
The compile-time symbol DEFAULT_BASETYPE_FACTORY controls whether the old (3.4 and earlier) DDS and DataDDS constructors are supported. These constructors now use a default factory class (BaseTypeFactory, implemented by this library) to instantiate Byte, ..., Grid variables. To use the default ctor in your code you must also define this symbol. If you do choose to define this and fail to provide a specialization of BaseTypeFactory when your software needs one, you code may not link or may fail at run time. In addition to the older ctors for DDS and DataDDS, defining the symbol also makes some of the older methods in Connect available (because those methods require the older DDS and DataDDS ctors.
Definition at line 74 of file DataDDS.h.
|
Definition at line 214 of file DDS.h. Referenced by DDS::dump(), DDS::print(), and DDS::print_constrained(). |
|
Definition at line 215 of file DDS.h. Referenced by DDS::check_semantics(), DDS::del_var(), DDS::duplicate(), DDS::exact_match(), DDS::leaf_match(), DDS::mark_all(), DDS::tag_nested_sequences(), and DDS::~DDS(). |
|
|
|
Definition at line 160 of file DataDDS.cc. |
|
|
|
Definition at line 349 of file DDS.cc. References DBG2, and BaseType::ptr_duplicate(). Referenced by DDXParser::ddx_end_document(), and DDS::duplicate(). |
Here is the call graph for this function:
|
Check the semantics of the DDS describing a complete dataset. If ALL is true, check not only the semantics of THIS->TABLE, but also recurrsively all ctor types in the THIS->TABLE. By default, ALL is false since parsing a DDS input file runns semantic checks on all variables (but not the dataset itself.
Definition at line 780 of file DDS.cc. References unique_names(), and DDS::Vars_iter. |
Here is the call graph for this function:
|
Remove the variables referenced by the range of iterators and free their storage.
Definition at line 402 of file DDS.cc. References DDS::Vars_iter. |
|
Remove the variable referenced by the iterator and free its storage.
|
|
Remove the named variable from the DDS. This method is not smart about looking up names. The variable must exist at the top level of the DDS and must match exactly the name given.
Definition at line 369 of file DDS.cc. References DDS::Vars_iter. |
|
Displays the pointer value of this instance and then calls parent dump
Reimplemented from DDS. Definition at line 125 of file DataDDS.cc. References DDS::dump(), DapIndent::Indent(), and DapIndent::UnIndent(). |
Here is the call graph for this function:
|
Definition at line 84 of file DDS.cc. References DDS::add_var(), DDS::d_factory, DDS::name, DDS::var_begin(), DDS::var_end(), and DDS::Vars_iter. Referenced by DDS::DDS(), and DDS::operator=(). |
Here is the call graph for this function:
|
Definition at line 473 of file DDS.cc. References btp_stack, DBG2, BaseType::name(), BaseType::var(), DDS::var(), and DDS::Vars_iter. Referenced by DDS::var(). |
Here is the call graph for this function:
|
Set the dataset's filename. |
|
Gets the dataset file name. |
|
Given an attribute container from a DAS, find or make a destination for its contents in the DDS.
Definition at line 180 of file DDS.cc. References AttrTable::append_container(), DBG, AttrTable::find_container(), BaseType::get_attr_table(), BaseType::get_parent(), AttrTable::entry::name, BaseType::type(), AttrTable::entry::type, and DDS::var(). Referenced by DDS::transfer_attributes(). |
Here is the call graph for this function:
|
Get the attribute table for the global attributes. Definition at line 315 of file DDS.cc. Referenced by DDXParser::ddx_start_document(). |
|
Returns the dataset's name. |
|
Return the factory which makes instances of the Byte, ..., Grid type classes. Specialize BaseTypeFactory so that a DDS will be populated with your client or server's specialized types.
Definition at line 234 of file DDS.h. Referenced by Connect::request_ddx(). |
|
Definition at line 126 of file DataDDS.h. Referenced by Sequence::deserialize(). |
|
Definition at line 130 of file DataDDS.h. Referenced by Sequence::deserialize(). |
|
Definition at line 134 of file DataDDS.h. Referenced by Sequence::deserialize(). |
|
|
|
Return the ith variable.
|
|
Return the iterator for the ith variable.
|
|
|
|
|
|
|
|
Definition at line 454 of file DDS.cc. References btp_stack, DBG2, BaseType::is_constructor_type(), BaseType::name(), BaseType::var(), and DDS::Vars_iter. Referenced by DDS::var(). |
Here is the call graph for this function:
|
Mark the named variable by setting its SEND_P flag to STATE (true indicates that it is to be sent). Names must be fully qualified.
Definition at line 826 of file DDS.cc. References btp_stack, DBG2, BaseType::name(), BaseType::set_send_p(), and DDS::var(). |
Here is the call graph for this function:
|
Mark the member variable
Definition at line 859 of file DDS.cc. References BaseType::set_send_p(), and DDS::Vars_iter. |
Here is the call graph for this function:
|
|
|
Definition at line 648 of file DDS.cc. References DBG2, dds_buffer(), dds_delete_buffer(), dds_switch_to_buffer(), and ddsparse(). |
Here is the call graph for this function:
|
Definition at line 619 of file DDS.cc. References DDS::parse(). |
Here is the call graph for this function:
|
Definition at line 598 of file DDS.cc. References can_not_read_file. Referenced by DDS::parse(), DODSFilter::read_ancillary_dds(), Connect::request_dds(), Connect::request_dds_url(), Connect::request_ddx(), and Connect::request_ddx_url(). |
|
Definition at line 675 of file DDS.cc. References id2www(), BaseType::print_decl(), and DDS::Vars_citer. Referenced by main(), and DODSFilter::send_dds(). |
Here is the call graph for this function:
|
Print those parts (variables) of the DDS structure to OS that are marked to be sent after evaluating the constraint expression.
Definition at line 699 of file DDS.cc. References id2www(), BaseType::print_decl(), and DDS::Vars_citer. Referenced by DODSFilter::dataset_constraint(), and DODSFilter::send_dds(). |
Here is the call graph for this function:
|
Print an XML represnetation of this DDS. This method is used to generate the part of the DDX response. The
Definition at line 740 of file DDS.cc. References default_schema_location, dods_namespace, id2xml(), AttrTable::print_xml(), DDS::var_begin(), and DDS::var_end(). Referenced by main(), and DODSFilter::send_ddx(). |
Here is the call graph for this function:
|
Sets the dataset name. Definition at line 306 of file DDS.cc. Referenced by DDXParser::ddx_start_element(). |
|
Set the factory class used to instantiate variables during the parse of a DDS.
|
|
|
|
Definition at line 571 of file DDS.cc. Referenced by DODSFilter::send_data(). |
|
Sets the version string. This typically looks something like: |
|
Definition at line 586 of file DDS.cc. References DDS::Vars_iter. Referenced by DODSFilter::send_data(). |
|
Definition at line 563 of file DDS.cc. Referenced by Sequence::read_row(), Vector::serialize(), UInt32::serialize(), UInt16::serialize(), Structure::serialize(), Str::serialize(), Int32::serialize(), Int16::serialize(), Grid::serialize(), Float64::serialize(), Float32::serialize(), and Byte::serialize(). |
|
Definition at line 555 of file DDS.cc. Referenced by Sequence::read_row(), Vector::serialize(), UInt32::serialize(), UInt16::serialize(), Structure::serialize(), Str::serialize(), Int32::serialize(), Int16::serialize(), Grid::serialize(), Float64::serialize(), Float32::serialize(), and Byte::serialize(). |
|
Given a DAS object, scavenge attributes from it and load them into this object and the variables it contains. If a DAS contans attributes from the current (8/2006) HDF4 server with names like var_dim_0, var_dim_1, then make those attribute tables sub tables of the var table.
Definition at line 244 of file DDS.cc. References AttrTable::append_attr(), AttrTable::append_container(), AttrTable::attr_begin(), AttrTable::attr_end(), DBG, DDS::find_matching_container(), AttrTable::get_attr_vector(), AttrTable::get_name(), AttrTable::get_type(), and BaseType::is_constructor_type(). Referenced by main(). |
Here is the call graph for this function:
|
Returns a pointer to the named variable. If the name contains one or more field separators then the function looks for a variable whose name matches exactly. If the name contains no field separators then the funciton looks first in the top level and then in all subsequent levels and returns the first occurrence found. In general, this function searches constructor types in the order in which they appear in the DDS, but there is no requirement that it do so.
Definition at line 443 of file DDS.cc. References btp_stack, DDS::exact_match(), DDS::leaf_match(), and www2id(). |
Here is the call graph for this function:
|
Search for for variable n as above but record all compound type variables which ultimately contain n on s. This stack can then be used to mark the contained compound-type variables as part of the current projection.
Definition at line 419 of file DDS.cc. References btp_stack. Referenced by DDS::exact_match(), DDS::find_matching_container(), and DDS::mark(). |
|
Definition at line 506 of file DDS.cc. Referenced by DODSFilter::dataset_constraint(), DDS::duplicate(), and DDS::print_xml(). |
|
Definition at line 518 of file DDS.cc. Referenced by DODSFilter::dataset_constraint(), DDS::duplicate(), DDS::print_xml(), and DODSFilter::send_blob(). |
|
|
|
|