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) {}
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);
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; }
86 void set_constraint(
unsigned long long start,
unsigned long long stride,
unsigned long long stop) {
102 vector<D4Dimension*> d_dims;
112 while (i != rhs.d_dims.end()) {
114 d_dims.back()->set_parent(
this);
117 d_parent = rhs.d_parent;
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(); }
166 D4DimensionsIter
dim_end() {
return d_dims.end(); }
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 set_parent(D4Group *g)
void insert_dim(D4Dimension *dim, D4DimensionsIter i)
unsigned long long c_start() const
unsigned long long c_stop() const
D4Dimensions * parent() const
D4DimensionsIter dim_end()
Get an iterator to the end of the dimensions.
bool empty() const
Does this D4Dimensions object actually have dimensions?
unsigned long long c_stride() const
void set_size(unsigned long size)
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.
bool used_by_projected_var() const
void m_duplicate(const D4Dimensions &rhs)
void add_dim_nocopy(D4Dimension *dim)
D4Dimensions & operator=(const D4Dimensions &rhs)
void set_parent(D4Dimensions *d)
D4Dimensions(const D4Dimensions &rhs)
D4Dimension(const string &name, unsigned long size, D4Dimensions *d=0)
void insert_dim_nocopy(D4Dimension *dim, D4DimensionsIter i)
vector< D4Dimension * >::const_iterator D4DimensionsCIter
void set_used_by_projected_var(bool state)
unsigned long size() const
void add_dim(D4Dimension *dim)
void set_name(const string &name)