25 #ifndef D4DIMENSIONS_H_ 26 #define D4DIMENSIONS_H_ 48 unsigned long long d_c_start, d_c_stride, d_c_stop;
50 bool d_used_by_projected_var;
53 D4Dimension() : d_name(
""), d_size(0), d_parent(0), d_constrained(
false), d_c_start(0), d_c_stride(0),
54 d_c_stop(0), d_used_by_projected_var(
false) {}
55 D4Dimension(
const string &name,
unsigned long size,
D4Dimensions *d = 0) : d_name(name), d_size(size), d_parent(d),
56 d_constrained(
false), d_c_start(0), d_c_stride(0), d_c_stop(0), d_used_by_projected_var(
false) {}
58 string name()
const {
return d_name;}
59 void set_name(
const string &name) { d_name = name; }
60 string fully_qualified_name()
const;
62 unsigned long size()
const {
return d_size; }
63 void set_size(
unsigned long size) { d_size = size; }
65 void set_size(
const string &size);
70 bool constrained()
const {
return d_constrained; }
71 unsigned long long c_start()
const {
return d_c_start; }
72 unsigned long long c_stride()
const {
return d_c_stride; }
73 unsigned long long c_stop()
const {
return d_c_stop; }
75 bool used_by_projected_var()
const {
return d_used_by_projected_var; }
76 void set_used_by_projected_var(
bool state) { d_used_by_projected_var = state; }
86 void set_constraint(
unsigned long long start,
unsigned long long stride,
unsigned long long stop) {
102 vector<D4Dimension*> d_dims;
111 D4DimensionsCIter i = rhs.d_dims.begin();
112 while (i != rhs.d_dims.end()) {
114 d_dims.back()->set_parent(
this);
117 d_parent = rhs.d_parent;
123 typedef vector<D4Dimension*>::const_iterator D4DimensionsCIter;
130 D4DimensionsIter i = d_dims.begin();
131 while (i != d_dims.end())
136 if (
this == &rhs)
return *
this;
142 bool empty()
const {
return d_dims.empty(); }
144 D4Group *parent()
const {
return d_parent;}
145 void set_parent(
D4Group *g) { d_parent = g; }
166 D4DimensionsIter
dim_end() {
return d_dims.end(); }
186 dim->set_parent(
this);
187 d_dims.insert(i, dim);
190 void print_dap4(
XMLWriter &xml,
bool constrained =
false)
const;
vector< D4Dimension * >::iterator D4DimensionsIter
Iterator used for D4Dimensions.
void insert_dim(D4Dimension *dim, D4DimensionsIter i)
D4DimensionsIter dim_end()
Get an iterator to the end of the dimensions.
void set_constraint(unsigned long long start, unsigned long long stride, unsigned long long stop)
D4DimensionsIter dim_begin()
Get an iterator to the start of the dimensions.
top level DAP object to house generic methods
void add_dim_nocopy(D4Dimension *dim)
bool empty() const
Does this D4Dimensions object actually have dimensions?
void insert_dim_nocopy(D4Dimension *dim, D4DimensionsIter i)
void add_dim(D4Dimension *dim)