28#include "Constructor.h"
29#include "D4Dimensions.h"
30#include "D4EnumDefs.h"
60 vector<D4Group *> d_groups;
62 BaseType *m_find_map_source_helper(
const string &name);
65 void m_duplicate(
const D4Group &g);
68 typedef vector<D4Group *>::iterator groupsIter;
69 typedef vector<D4Group *>::const_iterator groupsCIter;
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);
137 void set_send_p(
bool state)
override;
138 void set_read_p(
bool state)
override;
143 void intern_data()
override;
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.
D4Dimension * find_dim(const string &path)
Find the dimension using a path. Using the DAP4 name syntax, lookup a dimension. The dimension must b...
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 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.
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.
top level DAP object to house generic methods
virtual string dataset() const
Returns the name of the dataset used to create this instance.