44 D4Map() : d_name(
""), d_array(0), d_parent(0) { }
45 D4Map(
const string &name,
Array *array,
Array *parent = 0) : d_name(name), d_array(array), d_parent(parent) { }
49 const string& name()
const {
return d_name; }
50 void set_name(
const string& name) { d_name = name; }
52 const Array* array()
const {
return d_array; }
53 void set_array(
Array* array) { d_array = array; }
59 void set_parent(
Array* parent) { d_parent = parent; }
72 typedef vector<D4Map*>::iterator D4MapsIter;
73 typedef vector<D4Map*>::const_iterator D4MapsCIter;
76 vector<D4Map*> d_maps;
79 void m_duplicate(
const D4Maps &maps) {
80 d_parent = maps.d_parent;
81 for (D4MapsCIter ci = maps.d_maps.begin(), ce = maps.d_maps.end(); ci != ce; ++ci) {
82 d_maps.push_back(
new D4Map(**ci));
91 for (D4MapsIter i = d_maps.begin(), e = d_maps.end(); i != e; ++i)
97 void add_map(
D4Map *map) {
98 d_maps.push_back(map);
100 if (!d_maps.back()->parent())
101 d_maps.back()->set_parent(d_parent);
104 D4Map* get_map(
int i) {
return d_maps.at(i); }
106 D4MapsIter map_begin() {
return d_maps.begin(); }
107 D4MapsIter map_end() {
return d_maps.end(); }
109 int size()
const {
return d_maps.size(); }
110 bool empty()
const {
return d_maps.empty(); }
112 virtual void print_dap4(
XMLWriter &xml) {
113 for (D4MapsIter i = d_maps.begin(), e = d_maps.end(); i != e; ++i)
114 (*i)->print_dap4(xml);
const Array * parent() const
The Array that holds this Map.
A multidimensional array of identical data types.