27#define _constructor_h 1
40class D4StreamUnMarshaller;
49 std::vector<BaseType *> d_vars;
51 BaseType *m_leaf_match(
const string &
name, btp_stack *s =
nullptr);
52 BaseType *m_exact_match(
const string &
name, btp_stack *s =
nullptr);
60 m_duplicate(copy_from);
64 typedef std::vector<BaseType *>::const_iterator Vars_citer ;
65 typedef std::vector<BaseType *>::iterator Vars_iter ;
66 typedef std::vector<BaseType *>::reverse_iterator Vars_riter ;
71 for (
auto var: d_vars)
78 BaseType::operator=(rhs);
85 std::string
FQN()
const override ;
92 unsigned int width(
bool constrained =
false)
const override;
95 BaseType *
var(
const string &
name,
bool exact_match =
true, btp_stack *s =
nullptr)
override;
99 BaseType *
var(
const string &n, btp_stack &s)
override;
113 const vector<BaseType*> &
variables()
const {
return d_vars; }
119 virtual void del_var(Vars_iter i);
121 bool read()
override;
136 throw InternalErr(__FILE__, __LINE__,
"Never use this method; see the programmer's guide documentation.");
139 throw InternalErr(__FILE__, __LINE__,
"Never use this method; see the programmer's guide documentation.");
146 void print_decl(ostream &out,
string space =
" ",
bool print_semi =
true,
bool constraint_info =
false,
147 bool constrained =
false)
override;
149 void print_xml(ostream &out,
string space =
" ",
bool constrained =
false)
override;
155 void print_decl(FILE *out,
string space =
" ",
bool print_semi =
true,
bool constraint_info =
false,
156 bool constrained =
false)
override;
157 void print_xml(FILE *out,
string space =
" ",
bool constrained =
false)
override;
159 void print_val(FILE *out,
string space =
"",
bool print_decl_p =
true)
override;
160 void print_val(ostream &out,
string space =
"",
bool print_decl_p =
true)
override;
165 static AttrTable *make_dropped_vars_attr_table(vector<BaseType *> *dropped_vars);
167 void dump(ostream &strm)
const override;
Contains the attributes for a dataset.
The basic data type for the DODS DAP types.
virtual string name() const
Returns the name of the class instance.
virtual string dataset() const
Returns the name of the dataset used to create this instance.
BaseType(const string &n, const Type &t, bool is_dap4=false)
The BaseType constructor.
virtual Type type() const
Returns the type of the class instance.
Evaluate a constraint expression.
int element_count(bool leaves=false) override
Count the members of constructor types.
void compute_checksum(Crc32 &checksum) override
include the data for this variable in the checksum DAP4 includes a checksum with every data response....
void transform_to_dap4(D4Group *root, Constructor *dest) override
DAP2 to DAP4 transform.
Vars_iter get_vars_iter(int i)
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())
void add_var(BaseType *bt, Part part=nil) override
void transfer_attributes(AttrTable *at) override
void print_xml_writer(XMLWriter &xml, bool constrained=false) override
void print_decl(ostream &out, string space=" ", bool print_semi=true, bool constraint_info=false, bool constrained=false) override
Print an ASCII representation of the variable structure.
unsigned int buf2val(void **) override
Reads the class data.
void print_xml(ostream &out, string space=" ", bool constrained=false) override
bool deserialize(UnMarshaller &um, DDS *dds, bool reuse=false) override
Receive data from the net.
void intern_data() override
Read data into this variable.
void set_read_p(bool state) override
Set the 'read_p' property for the Constructor and its members.
void print_val(FILE *out, string space="", bool print_decl_p=true) override
Prints the value of the variable.
void set_send_p(bool state) override
bool read() override
Read the elements of Constructor marked for transmission.
void set_in_selection(bool state) override
Set the in_selection property.
bool serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval=true) override
Move data to the net, then remove them from the object.
void add_var_nocopy(BaseType *bt, Part part=nil) override
const vector< BaseType * > & variables() const
unsigned int width(bool constrained=false) const override
BaseType * get_var_index(int i)
bool check_semantics(string &msg, bool all=false) override
Compare an object's current state with the semantics of its type.
void print_dap4(XMLWriter &xml, bool constrained=false) override
std::string FQN() const override
unsigned int val2buf(void *, bool) override
Loads class data.
virtual bool is_linear()
Check to see whether this variable can be printed simply.
virtual void del_var(const string &name)
Remove an element from a Constructor.
void dump(ostream &strm) const override
dumps information about this object
Marshaller that knows how to marshal/serialize dap data objects to a C++ iostream using DAP4's receiv...
Read data from the stream made by D4StreamMarshaller.
A class for software fault reporting.
abstract base class used to marshal/serialize dap data objects
abstract base class used to unmarshall/deserialize dap data objects
top level DAP object to house generic methods
Type
Identifies the data type.
Part
Names the parts of multi-section constructor data types.