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) {}
56 D4Dimension(
const string &name,
unsigned long long size,
D4Dimensions *d = 0)
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; }
61 void set_name(
const string &name) { d_name = name; }
64 unsigned long long size()
const {
return d_size; }
65 void set_size(
unsigned long long size) { d_size = size; }
67 void set_size(
const string &size);
72 bool constrained()
const {
return d_constrained; }
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; }
77 bool used_by_projected_var()
const {
return d_used_by_projected_var; }
78 void set_used_by_projected_var(
bool state) { d_used_by_projected_var = state; }
104 vector<D4Dimension *> d_dims;
112 void m_duplicate(
const D4Dimensions &rhs) {
113 D4DimensionsCIter i = rhs.d_dims.begin();
114 while (i != rhs.d_dims.end()) {
116 d_dims.back()->set_parent(
this);
119 d_parent = rhs.d_parent;
127 D4Dimensions() : d_parent(0) {}
129 D4Dimensions(
const D4Dimensions &rhs) : d_parent(0) { m_duplicate(rhs); }
131 virtual ~D4Dimensions() {
133 while (i != d_dims.end())
137 D4Dimensions &operator=(
const D4Dimensions &rhs) {
145 bool empty()
const {
return d_dims.empty(); }
147 D4Group *parent()
const {
return d_parent; }
148 void set_parent(D4Group *g) { d_parent = g; }
164 dim->set_parent(
this);
165 d_dims.push_back(dim);
190 dim->set_parent(
this);
191 d_dims.insert(i, dim);
194 void print_dap4(
XMLWriter &xml,
bool constrained =
false)
const;