28#include "Constructor.h"
29#include "D4Dimensions.h"
30#include "D4EnumDefs.h"
60 vector<D4Group *> d_groups;
65 void m_duplicate(
const D4Group &g);
91 std::string
FQN()
const override;
97 D4EnumDef *find_enum_def(
const string &path);
103 d_enum_defs->set_parent(
this);
113 const vector<D4Group *> &groups()
const {
return d_groups; }
119 groupsIter
grp_end() {
return d_groups.end(); }
121 void add_group(
const D4Group *g) { add_group_nocopy(
new D4Group(*g)); }
123 void add_group_nocopy(
D4Group *g) {
125 d_groups.push_back(g);
127 void insert_group_nocopy(
D4Group *g, groupsIter i) {
129 d_groups.insert(i, g);
132 D4Group *find_child_grp(
const string &grp_name);
144 void serialize(D4StreamMarshaller &m, DMR &dmr,
bool filter =
false)
override;
145 void deserialize(D4StreamUnMarshaller &um, DMR &dmr)
override;
147 void print_dap4(XMLWriter &xml,
bool constrained =
false)
override;
149 void print_decl(ostream &out,
string space =
" ",
bool print_semi =
true,
bool constraint_info =
false,
150 bool constrained =
false)
override;
151 void print_decl(FILE *out,
string space =
" ",
bool print_semi =
true,
bool constraint_info =
false,
152 bool constrained =
false)
override;
154 void print_val(FILE *out,
string space =
"",
bool print_decl_p =
true)
override;
155 void print_val(ostream &out,
string space =
"",
bool print_decl_p =
true)
override;
157 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