60 D4Map() : d_name(
""), d_array(0), d_parent(0) { }
65 const string& name()
const {
return d_name; }
66 void set_name(
const string& name) { d_name = name; }
68 const Array* array()
const {
return d_array; }
69 void set_array(
Array* array) { d_array = array; }
77 virtual void print_dap4(XMLWriter &xml);
86 typedef vector<D4Map*>::iterator D4MapsIter;
87 typedef vector<D4Map*>::const_iterator D4MapsCIter;
90 vector<D4Map*> d_maps;
93 void m_duplicate(
const D4Maps &maps) {
94 d_parent = maps.d_parent;
95 for (D4MapsCIter ci = maps.d_maps.begin(), ce = maps.d_maps.end(); ci != ce; ++ci) {
96 d_maps.push_back(
new D4Map(**ci));
105 for (D4MapsIter i = d_maps.begin(), e = d_maps.end(); i != e; ++i)
116 d_maps.push_back(map);
118 if (!d_maps.back()->parent())
119 d_maps.back()->set_parent(d_parent);
122 void remove_map(
D4Map *map) {
123 for (D4MapsIter i = d_maps.begin(), e = d_maps.end(); i != e; ++i) {
129 if ((*i)->name() == map->name() && (*i)->array() == map->array()) {
136 D4Map* get_map(
int i) {
return d_maps.at(i); }
138 D4MapsIter map_begin() {
return d_maps.begin(); }
139 D4MapsIter map_end() {
return d_maps.end(); }
141 int size()
const {
return d_maps.size(); }
142 bool empty()
const {
return d_maps.empty(); }
144 virtual void print_dap4(XMLWriter &xml) {
145 for (D4MapsIter i = d_maps.begin(), e = d_maps.end(); i != e; ++i)
146 (*i)->print_dap4(xml);
A multidimensional array of identical data types.
const Array * parent() const
The Array that holds this Map.
top level DAP object to house generic methods