51 tuple(
const string &l,
long long v) :
label(l),
value(v) {}
54 vector<tuple> d_tuples;
59 d_parent = rhs.d_parent;
60 d_tuples = rhs.d_tuples;
63 void print_value(
XMLWriter &xml,
const D4EnumDef::tuple &tuple)
const;
81 string name()
const {
return d_name; }
90 bool empty()
const {
return d_tuples.empty(); }
105 vector<D4EnumDef *> d_enums;
113 while (i != rhs.d_enums.end()) {
117 d_parent = rhs.d_parent;
129 while (i != d_enums.end()) {
141 bool empty()
const {
return d_enums.empty(); }
153 d_enums.push_back(enum_def);
175 d_enums.insert(i, enum_def_copy);
D4EnumValueIter value_end()
D4EnumDefs * parent() const
string & label(D4EnumValueIter i)
vector< tuple >::iterator D4EnumValueIter
void set_name(const string &n)
long long value(D4EnumValueIter i)
D4EnumDef(const D4EnumDef &rhs)
void add_value(const string &label, long long value)
D4EnumDef(const string &n, const Type &t, D4EnumDefs *e=0)
D4EnumValueIter value_begin()
void print_dap4(XMLWriter &xml) const
void set_parent(D4EnumDefs *e)
D4EnumDef & operator=(const D4EnumDef &rhs)
bool is_valid_enum_value(long long value)
vector< D4EnumDef * >::iterator D4EnumDefIter
void insert_enum(D4EnumDef *enum_def, D4EnumDefIter i)
Insert a D4EnumDef. Insert a D4EnumDef before the position specified by the iterator.
void print_dap4(XMLWriter &xml, bool constrained=false) const
void set_parent(D4Group *p)
D4EnumDefIter enum_end()
Get an iterator to the end of the enumerations.
void add_enum(D4EnumDef *enum_def)
void add_enum_nocopy(D4EnumDef *enum_def)
D4EnumDefs & operator=(const D4EnumDefs &rhs)
D4EnumDefs(const D4EnumDefs &rhs)
D4EnumDefIter enum_begin()
Get an iterator to the start of the enumerations.
vector< D4EnumDef * >::const_iterator D4EnumDefCIter
D4EnumDef * find_enum_def(const string &name)
top level DAP object to house generic methods
Type
Identifies the data type.