25#ifndef D4DIMENSIONS_H_
26#define D4DIMENSIONS_H_
43 unsigned long long d_size;
48 int64_t d_c_start, d_c_stride, d_c_stop;
50 bool d_used_by_projected_var;
54 : d_name(
""), d_size(0), d_parent(0), d_constrained(false), d_c_start(0), d_c_stride(0), d_c_stop(0),
55 d_used_by_projected_var(false) {}
57 : d_name(
name), d_size(
size), d_parent(d), d_constrained(false), d_c_start(0), d_c_stride(0), d_c_stop(0),
58 d_used_by_projected_var(false) {}
60 string name()
const {
return d_name; }
64 unsigned long long size()
const {
return d_size; }
73 int64_t
c_start()
const {
return d_c_start; }
74 int64_t
c_stride()
const {
return d_c_stride; }
75 int64_t
c_stop()
const {
return d_c_stop; }
104 vector<D4Dimension *> d_dims;
114 while (i != rhs.d_dims.end()) {
116 d_dims.back()->set_parent(
this);
119 d_parent = rhs.d_parent;
133 while (i != d_dims.end())
145 bool empty()
const {
return d_dims.empty(); }
165 d_dims.push_back(dim);
191 d_dims.insert(i, dim);
void set_parent(D4Dimensions *d)
unsigned long long size() const
bool used_by_projected_var() const
D4Dimensions * parent() const
void print_dap4(XMLWriter &xml) const
Print the Dimension declaration. Print the Dimension in a form suitable for use in a Group definition...
void set_used_by_projected_var(bool state)
void set_size(unsigned long long size)
string fully_qualified_name() const
Get the FQN for the dimension.
D4Dimension(const string &name, unsigned long long size, D4Dimensions *d=0)
void set_name(const string &name)
void set_constraint(int64_t start, int64_t stride, int64_t stop)
D4Dimensions & operator=(const D4Dimensions &rhs)
vector< D4Dimension * >::iterator D4DimensionsIter
Iterator used for D4Dimensions.
void add_dim_nocopy(D4Dimension *dim)
vector< D4Dimension * >::const_iterator D4DimensionsCIter
void add_dim(D4Dimension *dim)
void m_duplicate(const D4Dimensions &rhs)
void insert_dim_nocopy(D4Dimension *dim, D4DimensionsIter i)
D4Dimension * find_dim(const string &name)
D4DimensionsIter dim_end()
Get an iterator to the end of the dimensions.
bool empty() const
Does this D4Dimensions object actually have dimensions?
D4DimensionsIter dim_begin()
Get an iterator to the start of the dimensions.
D4Dimensions(const D4Dimensions &rhs)
void insert_dim(D4Dimension *dim, D4DimensionsIter i)
void set_parent(D4Group *g)
void print_dap4(XMLWriter &xml, bool constrained=false) const
top level DAP object to house generic methods