28#include "Constructor.h"
29#include "D4Dimensions.h"
30#include "D4EnumDefs.h"
60 vector<D4Group*> d_groups;
65 void m_duplicate(
const D4Group &g);
68 typedef vector<D4Group*>::iterator groupsIter;
69 typedef vector<D4Group*>::const_iterator groupsCIter;
90 std::string
FQN()
const override;
96 D4EnumDef *find_enum_def(
const string &path);
102 d_enum_defs->set_parent(
this);
112 const vector<D4Group*> &groups()
const {
return d_groups; }
118 groupsIter
grp_end() {
return d_groups.end(); }
120 void add_group(
const D4Group *g) {
121 add_group_nocopy(
new D4Group(*g));
124 void add_group_nocopy(D4Group *g) {
126 d_groups.push_back(g);
128 void insert_group_nocopy(D4Group *g, groupsIter i) {
130 d_groups.insert(i, g);
133 D4Group *find_child_grp(
const string &grp_name);
145 void serialize(D4StreamMarshaller &m, DMR &dmr,
bool filter =
false)
override;
146 void deserialize(D4StreamUnMarshaller &um, DMR &dmr)
override;
148 void print_dap4(XMLWriter &xml,
bool constrained =
false)
override;
150 void print_decl(ostream &out,
string space =
" ",
bool print_semi =
true,
bool constraint_info =
false,
151 bool constrained =
false)
override;
152 void print_decl(FILE *out,
string space =
" ",
bool print_semi =
true,
bool constraint_info =
false,
153 bool constrained =
false)
override;
155 void print_val(FILE *out,
string space =
"",
bool print_decl_p =
true)
override;
156 void print_val(ostream &out,
string space =
"",
bool print_decl_p =
true)
override;
158 std::vector<BaseType *> *
transform_to_dap2(AttrTable *parent_attr_table)
override;
A multidimensional array of identical data types.
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.
void print_dap4(XMLWriter &xml, bool constrained=false) override
D4Dimension * find_dim(const string &path)
Find the dimension using a path. Using the DAP4 name syntax, lookup a dimension. The dimension must b...
void print_val(FILE *out, string space="", bool print_decl_p=true) override
Prints the value of the variable.
bool is_dap4_projected(std::vector< std::string > &inventory) override
Array * find_map_source(const string &path)
Given a path to an Array that is also a Map, get that Array.
BaseType * find_var(const string &name)
groupsIter grp_begin()
Get an iterator to the start of the values.
void intern_data() override
Read data into this variable.
void serialize(D4StreamMarshaller &m, DMR &dmr, bool filter=false) override
Serialize a Group.
uint64_t request_size_kb(bool constrained)
Get the estimated size of a response in kilobytes.
groupsIter grp_end()
Get an iterator to the end of the values.
D4Dimensions * dims()
Get the dimensions defined for this Group.
void set_send_p(bool state) override
BaseType * ptr_duplicate() override
void set_read_p(bool state) override
Set the 'read_p' property for the Constructor and its members.
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.
D4EnumDefs * enum_defs()
Get the enumerations defined for this Group.
long request_size(bool constrained)
D4Group(const string &name)
std::vector< BaseType * > * transform_to_dap2(AttrTable *parent_attr_table) override
Transform the D4Group's variables to DAP2 variables.
std::string FQN() const override
void deserialize(D4StreamUnMarshaller &um, DMR &dmr) override
top level DAP object to house generic methods