43 #ifndef _dods_limits_h
153 dimension() : size(0), name(
""), dim(0), use_sdim_for_slice(false) {
161 dimension(
unsigned long s,
string n) : size(s), name(n), dim(0), use_sdim_for_slice(false) {
185 std::vector<dimension> _shape;
195 unsigned int print_array(FILE *out,
unsigned int index,
196 unsigned int dims,
unsigned int shape[]);
198 unsigned int print_array(ostream &out,
unsigned int index,
199 unsigned int dims,
unsigned int shape[]);
207 typedef std::vector<dimension>::const_iterator
Dim_citer ;
214 typedef std::vector<dimension>::iterator
Dim_iter ;
229 void append_dim(
int size,
const string &name =
"");
231 void prepend_dim(
int size,
const string& name =
"");
235 virtual void add_constraint(Dim_iter i,
int start,
int stride,
int stop);
253 virtual unsigned int dimensions(
bool constrained =
false);
261 virtual void print_decl(ostream &out,
string space =
" ",
262 bool print_semi =
true,
263 bool constraint_info =
false,
264 bool constrained =
false);
266 virtual void print_xml(ostream &out,
string space =
" ",
267 bool constrained =
false);
273 virtual void print_xml_core(FILE *out,
string space,
bool constrained,
string tag);
274 virtual void print_xml_core(ostream &out,
string space,
bool constrained,
string tag);
278 bool constrained =
false);
280 virtual void print_val(ostream &out,
string space =
"",
281 bool print_decl_p =
true);
283 virtual void print_xml(FILE *out,
string space =
" ",
284 bool constrained =
false);
286 bool constrained =
false);
287 virtual void print_val(FILE *out,
string space =
"",
288 bool print_decl_p =
true);
289 virtual void print_decl(FILE *out,
string space =
" ",
290 bool print_semi =
true,
291 bool constraint_info =
false,
292 bool constrained =
false);
296 virtual void dump(ostream &strm)
const ;
virtual void print_xml_writer(XMLWriter &xml, bool constrained=false)
virtual void reset_constraint()
Reset constraint to select entire array.
virtual void add_constraint(Dim_iter i, int start, int stride, int stop)
Adds a constraint to an Array dimension.
virtual bool check_semantics(string &msg, bool all=false)
Check semantic features of the Array.
virtual void print_xml_core(FILE *out, string space, bool constrained, string tag)
Array(const string &n, BaseType *v, bool is_dap4=false)
Array constructor.
virtual unsigned int dimensions(bool constrained=false)
Return the total number of dimensions in the array.
Part
Names the parts of multi-section constructor data types.
void add_var(BaseType *v, Part p=nil)
Add the BaseType pointer to this constructor type instance.
int stop
The constraint end index.
Holds a one-dimensional collection of DAP2 data types.
std::vector< dimension >::const_iterator Dim_citer
bool use_sdim_for_slice
Used to control printing the DMR in data responses.
int start
The constraint start index.
Array & operator=(const Array &rhs)
void append_dim(int size, const string &name="")
Add a dimension of a given size.
virtual void update_length(int size=0)
void _duplicate(const Array &a)
virtual D4Dimension * dimension_D4dim(Dim_iter i)
virtual void print_as_map_xml(ostream &out, string space=" ", bool constrained=false)
virtual int dimension_size(Dim_iter i, bool constrained=false)
Returns the size of the dimension.
std::vector< dimension >::iterator Dim_iter
virtual string dimension_name(Dim_iter i)
Returns the name of the specified dimension.
virtual BaseType * ptr_duplicate()
virtual int dimension_stride(Dim_iter i, bool constrained=false)
Returns the stride value of the constraint.
int stride
The constraint stride.
virtual void print_decl(ostream &out, string space=" ", bool print_semi=true, bool constraint_info=false, bool constrained=false)
Prints a DDS entry for the Array.
D4Dimension * dim
If not null, a weak pointer to the D4Dimension.
int c_size
Size of dimension once constrained.
virtual void print_as_map_xml_writer(XMLWriter &xml, bool constrained)
void prepend_dim(int size, const string &name="")
virtual void print_xml(ostream &out, string space=" ", bool constrained=false)
virtual int dimension_stop(Dim_iter i, bool constrained=false)
Return the stop index of the constraint.
dimension(unsigned long s, string n)
virtual void dump(ostream &strm) const
dumps information about this object
virtual int dimension_start(Dim_iter i, bool constrained=false)
Return the start index of a dimension.
virtual void print_dap4(XMLWriter &xml, bool constrained=false)
Print the DAP4 representation of an array.
virtual ~Array()
The Array destructor.
int size
The unconstrained dimension size.
string name
The name of this dimension.
The basic data type for the DODS DAP types.
void add_var_nocopy(BaseType *v, Part p=nil)
virtual void print_xml_writer_core(XMLWriter &out, bool constrained, string tag)
unsigned long size() const
virtual BaseType * transform_to_dap4(D4Group *root, Constructor *container)
DAP2 to DAP4 transform.
unsigned int print_array(FILE *out, unsigned int index, unsigned int dims, unsigned int shape[])
Print the value given the current constraint.
A multidimensional array of identical data types.
virtual void print_val(ostream &out, string space="", bool print_decl_p=true)
Prints the value of the variable.
virtual void clear_constraint()
Clears the projection; add each projected dimension explicitly using add_constraint.