|
libdap Updated for version 3.21.1
libdap4 is an implementation of OPeNDAP's DAP protocol.
|
Holds a structure (aggregate) type. More...
#include <Structure.h>

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, Part part=nil) override |
| void | add_var_nocopy (BaseType *bt, Part part=nil) override |
| unsigned int | buf2val (void **) override |
| bool | check_semantics (string &msg, bool all=false) override |
| void | compute_checksum (Crc32 &checksum) override |
| virtual void | del_var (const string &name) |
| Remove an element from a Constructor. | |
| virtual void | del_var (Vars_iter i) |
| Delete the BaseType* and erase the iterator . | |
| void | deserialize (D4StreamUnMarshaller &um, DMR &dmr) override |
| bool | deserialize (UnMarshaller &um, DDS *dds, bool reuse=false) override |
| virtual void | dump (ostream &strm) const |
| dumps information about this object | |
| int | element_count (bool leaves=false) override |
| std::string | FQN () const override |
| BaseType * | get_var_index (int i) |
| Vars_iter | get_vars_iter (int i) |
| void | intern_data () override |
| void | intern_data (ConstraintEvaluator &eval, DDS &dds) override |
| bool | is_dap4_projected (std::vector< std::string > &inventory) override |
| virtual bool | is_linear () |
| Check to see whether this variable can be printed simply. | |
| Structure & | operator= (const Structure &rhs) |
| void | print_dap4 (XMLWriter &xml, bool constrained=false) override |
| void | print_decl (FILE *out, string space=" ", bool print_semi=true, bool constraint_info=false, bool constrained=false) override |
| void | print_decl (ostream &out, string space=" ", bool print_semi=true, bool constraint_info=false, bool constrained=false) override |
| void | print_val (FILE *out, string space="", bool print_decl_p=true) override |
| void | print_val (ostream &out, string space="", bool print_decl_p=true) override |
| void | print_xml (FILE *out, string space=" ", bool constrained=false) override |
| void | print_xml (ostream &out, string space=" ", bool constrained=false) override |
| void | print_xml_writer (XMLWriter &xml, bool constrained=false) override |
| virtual BaseType * | ptr_duplicate () |
| bool | read () override |
| Read the elements of Constructor marked for transmission. | |
| bool | serialize (ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval=true) override |
| void | serialize (D4StreamMarshaller &m, DMR &dmr, bool filter=false) override |
| Serialize a Constructor. | |
| void | set_in_selection (bool state) override |
| Set the in_selection property. | |
| virtual void | set_leaf_sequence (int level=1) |
| Traverse Structure, set Sequence leaf nodes. | |
| void | set_read_p (bool state) override |
| Set the 'read_p' property for the Constructor and its members. | |
| void | set_send_p (bool state) override |
| void | set_var_index (BaseType *bt, int i) |
| Set the ith element of d_vars to a variable object. | |
| Structure (const string &n) | |
| Structure (const string &n, const string &d) | |
| Structure (const Structure &rhs) | |
| void | transfer_attributes (AttrTable *at) override |
| virtual vector< BaseType * > * | transform_to_dap2 (AttrTable *parent_attr_table) |
| DAP4 to DAP2 transform. | |
| virtual void | transform_to_dap4 (D4Group *root, Constructor *container) |
| unsigned int | val2buf (void *, bool) override |
| BaseType * | var (const string &n, btp_stack &s) override |
| BaseType * | var (const string &name, bool exact_match=true, btp_stack *s=nullptr) override |
| btp_stack no longer needed; use back pointers (BaseType::get_parent()) | |
| Vars_iter | var_begin () |
| Vars_iter | var_end () |
| Vars_riter | var_rbegin () |
| Vars_riter | var_rend () |
| const vector< BaseType * > & | variables () const |
| unsigned int | width (bool constrained=false) const override |
| int64_t | width_ll (bool constrained=false) const override |
| Get the width of the Constructor's fields. | |
Static Public Member Functions | |
| static AttrTable * | make_dropped_vars_attr_table (vector< BaseType * > *dropped_vars) |
Protected Member Functions | |
| BaseType * | m_exact_match (const string &name, btp_stack *s=nullptr) |
| BaseType * | m_leaf_match (const string &name, btp_stack *s=nullptr) |
Protected Attributes | |
| std::vector< BaseType * > | d_vars |
Holds a structure (aggregate) type.
This data type is used to hold a collection of related data types, in a manner roughly corresponding to a C structure. The member types can be simple or compound types, and can include other Structures.
The DAP2 structure is defined as a singly-linked list. This means that Structure elements can be accessed either by name, with the var() function, or by their position in the list, either with the overloaded version of var(), or the combination of the first_var() and next_var() functions.
The val2buf() and buf2val() functions only return the size of the structure. To read parts of a DAP2 Structure into an application program, use the buf2val() function of the element of the Structure in question.
Note that the predicate-setting functions set_send_p() and set_read_p() set their flags for the Structure as well as for each of the Structure's member elements.
Similar to C, you can refer to members of Structure elements with a .'' notation. For example, if the Structure has a member Structure called Tom'' and Tom has a member Float32 called shoe_size'', then you can refer to Tom's shoe size as Tom.shoe_size''.
Definition at line 82 of file Structure.h.
|
inherited |
Definition at line 59 of file Constructor.h.
|
inherited |
Definition at line 60 of file Constructor.h.
|
inherited |
Definition at line 61 of file Constructor.h.
| libdap::Structure::Structure | ( | const string & | n | ) |
The Structure constructor requires only the name of the variable to be created. The name may be omitted, which will create a nameless variable. This may be adequate for some applications.
| n | A string containing the name of the variable to be created. |
Definition at line 110 of file Structure.cc.
The Structure server-side constructor requires the name of the variable to be created and the dataset name from which this variable is being created. Used on server-side handlers.
| n | A string containing the name of the variable to be created. |
| d | A string containing the name of the dataset from which this variable is being created. |
Definition at line 121 of file Structure.cc.
| libdap::Structure::Structure | ( | const Structure & | rhs | ) |
The Structure copy constructor.
Definition at line 124 of file Structure.cc.
|
virtual |
Definition at line 129 of file Structure.cc.
Adds an element to a Constructor.
| bt | A pointer to the variable to add to this Constructor. |
| part | Not used by this class, defaults to nil |
Definition at line 322 of file Constructor.cc.
Adds an element to a Constructor.
| bt | A pointer to thee variable to add to this Constructor. |
| part | Not used by this class, defaults to nil |
Definition at line 340 of file Constructor.cc.
|
inlineoverrideinherited |
Definition at line 137 of file Constructor.h.
|
overrideinherited |
Definition at line 622 of file Constructor.cc.
|
overrideinherited |
Definition at line 453 of file Constructor.cc.
|
virtualinherited |
Remove an element from a Constructor.
| n | name of the variable to remove |
Definition at line 359 of file Constructor.cc.
|
virtualinherited |
Delete the BaseType* and erase the iterator .
| i | The iterator that points to the BaseType. |
Definition at line 370 of file Constructor.cc.
|
overrideinherited |
Definition at line 500 of file Constructor.cc.
|
overrideinherited |
Definition at line 445 of file Constructor.cc.
|
virtual |
dumps information about this object
Displays the pointer value of this instance and information about this instance.
| strm | C++ i/o stream to dump the information to |
Definition at line 656 of file Structure.cc.
|
overrideinherited |
Definition at line 109 of file Constructor.cc.
|
overrideinherited |
Definition at line 98 of file Constructor.cc.
|
inherited |
Return the BaseType pointer for the ith variable.
| i | This index |
Definition at line 290 of file Constructor.cc.
|
inherited |
Return the iterator for the ith variable.
| i | the index |
Definition at line 285 of file Constructor.cc.
|
overrideinherited |
Definition at line 457 of file Constructor.cc.
|
overrideinherited |
Definition at line 399 of file Constructor.cc.
|
overrideinherited |
When send_p() is true and the attributes or variables contain dap4 data types then a description of the instance is added to the inventory and true is returned.
| inventory | is a value-result parameter |
Definition at line 722 of file Constructor.cc.
|
virtual |
Check to see whether this variable can be printed simply.
True if the instance can be flattened and printed as a single table of values. For Arrays and Grids this is always false. For Structures and Sequences the conditions are more complex. The implementation provided by this class always returns false. Other classes should override this implementation.
Reimplemented from libdap::Constructor.
Definition at line 235 of file Structure.cc.
|
protectedinherited |
Definition at line 237 of file Constructor.cc.
|
protectedinherited |
Definition at line 214 of file Constructor.cc.
|
staticinherited |
Definition at line 675 of file Constructor.cc.
Definition at line 228 of file Structure.cc.
|
overrideinherited |
Definition at line 601 of file Constructor.cc.
|
overrideinherited |
Definition at line 506 of file Constructor.cc.
|
overrideinherited |
Definition at line 512 of file Constructor.cc.
|
overrideinherited |
Definition at line 533 of file Constructor.cc.
|
overrideinherited |
Definition at line 539 of file Constructor.cc.
|
overrideinherited |
Definition at line 559 of file Constructor.cc.
|
overrideinherited |
Definition at line 568 of file Constructor.cc.
|
overrideinherited |
Definition at line 574 of file Constructor.cc.
|
virtual |
Definition at line 131 of file Structure.cc.
|
overrideinherited |
Read the elements of Constructor marked for transmission.
Iterate over the top level members of the Constructor and read all of them that have the 'send_p' property set to true. Assume the read() methods correctly set the 'read_p' property. Once done, set 'read_p' for the Constructor itself (but not for the members, that is left up to their individual read() methods).
Definition at line 386 of file Constructor.cc.
|
overrideinherited |
Definition at line 416 of file Constructor.cc.
|
overrideinherited |
Serialize a Constructor.
| m | |
| dmr | Unused |
| eval | Unused |
| filter | Unused |
| Error | is thrown if the value needs to be read and that operation fails. |
Definition at line 479 of file Constructor.cc.
|
overrideinherited |
Set the in_selection property.
Set the in_selection property for this variable and all of its children.
| state | Set the property value to state. |
Definition at line 656 of file Constructor.cc.
|
virtual |
Traverse Structure, set Sequence leaf nodes.
Definition at line 285 of file Structure.cc.
|
overrideinherited |
Set the 'read_p' property for the Constructor and its members.
This method sets read_p for all of the Constructor. The read() method is much more selective and only sets read_p for the Constructor itself, leaving the value of the property of the members up to their read() methods. Calling this with false will clear the property of all the member variables.
| state | Set the read_p property to this state. |
Definition at line 140 of file Constructor.cc.
|
overrideinherited |
Definition at line 121 of file Constructor.cc.
|
inherited |
Set the ith element of d_vars to a variable object.
| bt | A pointer to the variable that is assigned to the ith element. |
| i | The index of the variable to be set. |
Definition at line 301 of file Constructor.cc.
|
overrideinherited |
Definition at line 664 of file Constructor.cc.
|
virtual |
DAP4 to DAP2 transform.
Return a DAP2 'copy' of the variable.
Definition at line 167 of file Structure.cc.
|
virtual |
Build a DAP4 Structure.
This code must be subclassed for all but the most trivial cases.
| root | |
| container |
Definition at line 142 of file Structure.cc.
|
inlineoverrideinherited |
Definition at line 134 of file Constructor.h.
btp_stack no longer needed; use back pointers (BaseType::get_parent())
Definition at line 201 of file Constructor.cc.
|
overrideinherited |
btp_stack no longer needed; use back pointers (BaseType::get_parent())
Definition at line 191 of file Constructor.cc.
|
inherited |
Returns an iterator referencing the first structure element.
Definition at line 269 of file Constructor.cc.
|
inherited |
Returns an iterator referencing the end of the list of structure elements. Does not reference the last structure element.
Definition at line 273 of file Constructor.cc.
|
inherited |
Return a reverse iterator that references the last element.
Definition at line 276 of file Constructor.cc.
|
inherited |
Return a reverse iterator that references a point 'before' the first element.
Definition at line 280 of file Constructor.cc.
Get a const reference to the vector of BaseType pointers.
Definition at line 110 of file Constructor.h.
|
overrideinherited |
This version of width simply returns the same thing as width() for simple types and Arrays. For Structure it returns the total size if constrained is false, or the size of the elements in the current projection if true.
| constrained | If true, return the size after applying a constraint. |
Definition at line 156 of file Constructor.cc.
|
overrideinherited |
Get the width of the Constructor's fields.
| constrained | If true, return the constrained size |
Definition at line 176 of file Constructor.cc.
|
protectedinherited |
Definition at line 47 of file Constructor.h.