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.
std::string FQN() const override
top level DAP object to house generic methods
virtual BaseType * ptr_duplicate()=0
virtual string dataset() const
Returns the name of the dataset used to create this instance.