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 DODS 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 DODS 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''.
Structure(const Structure &rhs)
virtual unsigned int val2buf(void *val, bool reuse = false)
virtual unsigned int buf2val(void **val)
virtual BaseType* var(const string &name, bool exact_match = true)
virtual void add_var(BaseType *bt, Part p = nil)
Pix first_var()
void next_var(Pix &p)
BaseType* var(Pix p)
virtual void print_all_vals(ostream& os, XDR *src, DDS *dds, string space = "", bool print_decl_p = true)
alphabetic index hierarchy of classes
generated by doc++