51 tuple(
const string &l,
long long v) : label(l), value(v) {}
54 vector<tuple> d_tuples;
56 void print_value(
XMLWriter &xml,
const D4EnumDef::tuple &tuple)
const;
64 string name()
const {
return d_name; }
73 bool empty()
const {
return d_tuples.empty(); }
75 void add_value(
const string &label,
long long value) {
76 d_tuples.push_back(tuple(label, value));
80 D4EnumValueIter
value_end() {
return d_tuples.end(); }
81 string &
label(D4EnumValueIter i) {
return (*i).label; }
82 long long value(D4EnumValueIter i) {
return (*i).value; }
84 bool is_valid_enum_value(
long long value);
90 vector<D4EnumDef*> d_enums;
98 while (i != rhs.d_enums.end()) {
102 d_parent = rhs.d_parent;
115 D4EnumDefIter i = d_enums.begin();
116 while(i != d_enums.end()) {
122 if (
this == &rhs)
return *
this;
127 bool empty()
const {
return d_enums.empty(); }
137 add_enum_nocopy(
new D4EnumDef(*enum_def));
141 d_enums.push_back(enum_def);
150 D4EnumDef *find_enum_def(
const string &name);
163 d_enums.insert(i, enum_def_copy);
166 void print_dap4(
XMLWriter &xml,
bool constrained =
false)
const;
void insert_enum(D4EnumDef *enum_def, D4EnumDefIter i)
Insert a D4EnumDef. Insert a D4EnumDef before the position specified by the iterator.
void add_value(const string &label, long long value)
string & label(D4EnumValueIter i)
D4EnumDefs * parent() const
void set_name(const string &n)
D4EnumDef(const string &n, const Type &t, D4EnumDefs *e=0)
void set_parent(D4EnumDefs *e)
D4EnumDefs(const D4EnumDefs &rhs)
Type
Identifies the data type.
void set_parent(D4Group *p)
vector< D4EnumDef * >::const_iterator D4EnumDefCIter
void add_enum(D4EnumDef *enum_def)
D4EnumDefIter enum_begin()
Get an iterator to the start of the enumerations.
D4EnumDefIter enum_end()
Get an iterator to the end of the enumerations.
D4EnumValueIter value_end()
vector< D4EnumDef * >::iterator D4EnumDefIter
D4EnumValueIter value_begin()
void add_enum_nocopy(D4EnumDef *enum_def)
D4EnumDefs & operator=(const D4EnumDefs &rhs)
long long value(D4EnumValueIter i)
vector< tuple >::iterator D4EnumValueIter