libdap::Constructor Class Reference

`#include <Constructor.h>`

Inheritance diagram for libdap::Constructor:

## 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
void | dump (ostream &strm) const override
| 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.
Constructor & | operator= (const Constructor &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
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.
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.
void | transfer_attributes (AttrTable *at) override
void | transform_to_dap4 (D4Group *root, Constructor *dest) override
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

| Constructor (const Constructor &copy_from)
| Constructor (const string &name, const string &dataset, const Type &type, bool is_dap4=false)
| Constructor (const string &name, const Type &type, bool is_dap4=false)
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

## Detailed Description

Common methods for all constructor types.

Definition at line 42 of file Constructor.h.

## Member Typedef Documentation

## Vars_citer

typedef std::vector<BaseType*>::const_iterator libdap::Constructor::Vars_citer

Definition at line 59 of file Constructor.h.

## Vars_iter

typedef std::vector<BaseType*>::iterator libdap::Constructor::Vars_iter

Definition at line 60 of file Constructor.h.

## Vars_riter

typedef std::vector<BaseType*>::reverse_iterator libdap::Constructor::Vars_riter

Definition at line 61 of file Constructor.h.

## Constructor & Destructor Documentation

## Constructor() [1/3]

libdap::Constructor::Constructor | ( | const string & | name,
|  | const Type & | type,
|  | bool | is_dap4 = false )

inline protected

Definition at line 52 of file Constructor.h.

## Constructor() [2/3]

libdap::Constructor::Constructor | ( | const string & | name,
|  | const string & | dataset,
|  | const Type & | type,
|  | bool | is_dap4 = false )

inline protected

Definition at line 53 of file Constructor.h.

## Constructor() [3/3]

libdap::Constructor::Constructor | ( | const Constructor & | copy_from | ) |

inline protected

Definition at line 56 of file Constructor.h.

## ~Constructor()

libdap::Constructor::~Constructor | ( |  | ) |

inline override

Definition at line 65 of file Constructor.h.

## Member Function Documentation

## add_var()

void libdap::Constructor::add_var | ( | BaseType * | bt,
|  | Part | part = nil )

override

Adds an element to a Constructor.

Parameters

  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.

## add_var_nocopy()

void libdap::Constructor::add_var_nocopy | ( | BaseType * | bt,
|  | Part | part = nil )

override

Adds an element to a Constructor.

Parameters

  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.

## buf2val()

unsigned int libdap::Constructor::buf2val | ( | void ** |  | ) |

inline override

Definition at line 137 of file Constructor.h.

## check_semantics()

bool libdap::Constructor::check_semantics | ( | string & | msg,
|  | bool | all = false )

override

Definition at line 622 of file Constructor.cc.

## compute_checksum()

void libdap::Constructor::compute_checksum | ( | Crc32 & | checksum | ) |

override

Definition at line 453 of file Constructor.cc.

## del_var() [1/2]

void libdap::Constructor::del_var | ( | const string & | n | ) |

virtual

Remove an element from a Constructor.

Note
  New version. There is a subtle change in that this version will remove all variables in this Constructor with name 'n' while the old version would just remove the first variable.

Parameters

  n | name of the variable to remove

Definition at line 359 of file Constructor.cc.

## del_var() [2/2]

void libdap::Constructor::del_var | ( | Vars_iter | i | ) |

virtual

Delete the BaseType* and erase the iterator .

Note
  It is OK to call this with an iterator that points to nullptr.

Parameters

  i | The iterator that points to the BaseType.

Definition at line 370 of file Constructor.cc.

## deserialize() [1/2]

void libdap::Constructor::deserialize | ( | D4StreamUnMarshaller & | um,
|  | DMR & | dmr )

override

Definition at line 500 of file Constructor.cc.

## deserialize() [2/2]

bool libdap::Constructor::deserialize | ( | UnMarshaller & | um,
|  | DDS * | dds,
|  | bool | reuse = false )

override

Definition at line 445 of file Constructor.cc.

## dump()

void libdap::Constructor::dump | ( | ostream & | strm | ) | const

override

dumps information about this object

Displays the pointer value of this instance and information about this instance.

Parameters

  strm | C++ i/o stream to dump the information to

Returns
  void

Definition at line 741 of file Constructor.cc.

## element_count()

int libdap::Constructor::element_count | ( | bool | leaves = false | ) |

override

Definition at line 109 of file Constructor.cc.

## FQN()

string libdap::Constructor::FQN | ( |  | ) | const

override

Definition at line 98 of file Constructor.cc.

## get_var_index()

BaseType * libdap::Constructor::get_var_index | ( | int | i | ) |

Return the BaseType pointer for the ith variable.

Parameters

  i | This index

Returns
  The corresponding BaseType*.

Definition at line 290 of file Constructor.cc.

## get_vars_iter()

Constructor::Vars_iter libdap::Constructor::get_vars_iter | ( | int | i | ) |

Return the iterator for the ith variable.

Parameters

  i | the index

Returns
  The corresponding Vars_iter

Definition at line 285 of file Constructor.cc.

## intern_data() [1/2]

void libdap::Constructor::intern_data | ( |  | ) |

override

Definition at line 457 of file Constructor.cc.

## intern_data() [2/2]

void libdap::Constructor::intern_data | ( | ConstraintEvaluator & | eval,
|  | DDS & | dds )

override

Definition at line 399 of file Constructor.cc.

## is_dap4_projected()

bool libdap::Constructor::is_dap4_projected | ( | std::vector< std::string > & | inventory | ) |

override

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.

Parameters

  inventory | is a value-result parameter

Returns
  True when send_p() is true and this object contains dap4 types variables or attributes, false otherwise

Definition at line 722 of file Constructor.cc.

## is_linear()

bool libdap::Constructor::is_linear | ( |  | ) |

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.

Returns
  True if the instance can be printed as a single table of values, false otherwise.

Reimplemented in libdap::Structure.

Definition at line 649 of file Constructor.cc.

## m_exact_match()

BaseType * libdap::Constructor::m_exact_match | ( | const string & | name,
|  | btp_stack * | s = nullptr )

protected

Definition at line 237 of file Constructor.cc.

## m_leaf_match()

BaseType * libdap::Constructor::m_leaf_match | ( | const string & | name,
|  | btp_stack * | s = nullptr )

protected

Definition at line 214 of file Constructor.cc.

## make_dropped_vars_attr_table()

AttrTable * libdap::Constructor::make_dropped_vars_attr_table | ( | vector< BaseType * > * | dropped_vars | ) |

static

Definition at line 675 of file Constructor.cc.

## operator=()

Constructor & libdap::Constructor::operator= | ( | const Constructor & | rhs | ) |

inline

Definition at line 70 of file Constructor.h.

## print_dap4()

void libdap::Constructor::print_dap4 | ( | XMLWriter & | xml,
|  | bool | constrained = false )

override

Definition at line 601 of file Constructor.cc.

## print_decl() [1/2]

void libdap::Constructor::print_decl | ( | FILE * | out,
|  | string | space = " ",
|  | bool | print_semi = true,
|  | bool | constraint_info = false,
|  | bool | constrained = false )

override

Definition at line 506 of file Constructor.cc.

## print_decl() [2/2]

void libdap::Constructor::print_decl | ( | ostream & | out,
|  | string | space = " ",
|  | bool | print_semi = true,
|  | bool | constraint_info = false,
|  | bool | constrained = false )

override

Definition at line 512 of file Constructor.cc.

## print_val() [1/2]

void libdap::Constructor::print_val | ( | FILE * | out,
|  | string | space = "",
|  | bool | print_decl_p = true )

override

Definition at line 533 of file Constructor.cc.

## print_val() [2/2]

void libdap::Constructor::print_val | ( | ostream & | out,
|  | string | space = "",
|  | bool | print_decl_p = true )

override

Definition at line 539 of file Constructor.cc.

## print_xml() [1/2]

void libdap::Constructor::print_xml | ( | FILE * | out,
|  | string | space = " ",
|  | bool | constrained = false )

override

Deprecated

Definition at line 559 of file Constructor.cc.

## print_xml() [2/2]

void libdap::Constructor::print_xml | ( | ostream & | out,
|  | string | space = " ",
|  | bool | constrained = false )

override

Deprecated

Definition at line 568 of file Constructor.cc.

## print_xml_writer()

void libdap::Constructor::print_xml_writer | ( | XMLWriter & | xml,
|  | bool | constrained = false )

override

Definition at line 574 of file Constructor.cc.

## read()

bool libdap::Constructor::read | ( |  | ) |

override

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).

Returns
  returns false; the return value is a relic.

Definition at line 386 of file Constructor.cc.

## serialize() [1/2]

bool libdap::Constructor::serialize | ( | ConstraintEvaluator & | eval,
|  | DDS & | dds,
|  | Marshaller & | m,
|  | bool | ce_eval = true )

override

Definition at line 416 of file Constructor.cc.

## serialize() [2/2]

void libdap::Constructor::serialize | ( | D4StreamMarshaller & | m,
|  | DMR & | dmr,
|  | bool | filter = false )

override

Serialize a Constructor.

Todo
  See notebook for 8/21/14

Parameters

  m |
  dmr | Unused
  eval | Unused
  filter | Unused

Exceptions

  Error | is thrown if the value needs to be read and that operation fails.

Definition at line 479 of file Constructor.cc.

## set_in_selection()

void libdap::Constructor::set_in_selection | ( | bool | state | ) |

override

Set the in_selection property.

Set the in_selection property for this variable and all of its children.

Parameters

  state | Set the property value to state.

Definition at line 656 of file Constructor.cc.

## set_read_p()

void libdap::Constructor::set_read_p | ( | bool | state | ) |

override

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.

Parameters

  state | Set the read_p property to this state.

Definition at line 140 of file Constructor.cc.

## set_send_p()

void libdap::Constructor::set_send_p | ( | bool | state | ) |

override

Definition at line 121 of file Constructor.cc.

## set_var_index()

void libdap::Constructor::set_var_index | ( | BaseType * | bt,
|  | int | i )

Set the ith element of d_vars to a variable object.

Note
  This method only sets the ith element to a BaseType object. The user should be responsible to release or allocate the resource properly. Use this method cautionally.

Parameters

  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.

## transfer_attributes()

void libdap::Constructor::transfer_attributes | ( | AttrTable * | at | ) |

override

Definition at line 664 of file Constructor.cc.

## transform_to_dap4()

void libdap::Constructor::transform_to_dap4 | ( | D4Group * | root,
|  | Constructor * | dest )

override

Definition at line 82 of file Constructor.cc.

## val2buf()

unsigned int libdap::Constructor::val2buf | ( | void * | ,
|  | bool | )

inline override

Definition at line 134 of file Constructor.h.

## var() [1/2]

BaseType * libdap::Constructor::var | ( | const string & | n,
|  | btp_stack & | s )

override

btp_stack no longer needed; use back pointers (BaseType::get_parent())

Deprecated

Deprecated
  See comment in BaseType

Definition at line 201 of file Constructor.cc.

## var() [2/2]

BaseType * libdap::Constructor::var | ( | const string & | name,
|  | bool | exact_match = true,
|  | btp_stack * | s = nullptr )

override

btp_stack no longer needed; use back pointers (BaseType::get_parent())

Definition at line 191 of file Constructor.cc.

## var_begin()

Constructor::Vars_iter libdap::Constructor::var_begin | ( |  | ) |

Returns an iterator referencing the first structure element.

Definition at line 269 of file Constructor.cc.

## var_end()

Constructor::Vars_iter libdap::Constructor::var_end | ( |  | ) |

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.

## var_rbegin()

Constructor::Vars_riter libdap::Constructor::var_rbegin | ( |  | ) |

Return a reverse iterator that references the last element.

Definition at line 276 of file Constructor.cc.

## var_rend()

Constructor::Vars_riter libdap::Constructor::var_rend | ( |  | ) |

Return a reverse iterator that references a point 'before' the first element.

Definition at line 280 of file Constructor.cc.

## variables()

const vector< BaseType * > & libdap::Constructor::variables | ( |  | ) | const

inline

Get a const reference to the vector of BaseType pointers.

Note
  Use this in range-based for loops to iterate over the variables.

Returns
  A const reference to the vector of BaseType pointers.

Definition at line 110 of file Constructor.h.

## width()

unsigned int libdap::Constructor::width | ( | bool | constrained = false | ) | const

override

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.

Parameters

  constrained | If true, return the size after applying a constraint.

Returns
  The number of bytes used by the variable.

Deprecated
  Use width_ll()

Definition at line 156 of file Constructor.cc.

## width_ll()

int64_t libdap::Constructor::width_ll | ( | bool | constrained = false | ) | const

override

Get the width of the Constructor's fields.

Parameters

  constrained | If true, return the constrained size

Returns
  The number of bytes needed to store the values of this instance

Definition at line 176 of file Constructor.cc.

## Member Data Documentation

## d_vars

std::vector<BaseType *> libdap::Constructor::d_vars

protected

Definition at line 47 of file Constructor.h.

The documentation for this class was generated from the following files:

- Constructor.h
- Constructor.cc