29 #ifndef __NCML_MODULE__NCMLBASEARRAY_H__
30 #define __NCML_MODULE__NCMLBASEARRAY_H__
62 static auto_ptr< NCMLBaseArray >
createFromArray(
const libdap::Array& proto);
150 void destroy()
throw();
virtual Shape getSuperShape() const
Get the current dimensions of our superclass Array as a Shape object.
virtual bool read()
If there are no constraints and this is the first call to read(), we will do nothing, assuming the sueprclasses have everything under control.
virtual bool read_p()
Override to return false if we have uncomputed constraints and only true if the current constraints m...
virtual bool isConstrained() const
Return whether the superclass Array has been constrained along any dimensions.
An abstract superclass for NCMLArray that handles the non-parameterized functionality and allows u...
virtual bool isDataCached() const =0
virtual void cacheSuperclassStateIfNeeded()
Required by subclasses to copy the original data values locally.
virtual void copyDataFrom(libdap::Array &from)=0
Copy the data values from the given array, assuming the type matches the template type T of the subcl...
A wrapper class for a vector of Array::dimension structs.
virtual void cacheUnconstrainedDimensions()
NCMLBaseArray & operator=(const NCMLBaseArray &rhs)
virtual void cacheValuesIfNeeded()=0
Must copy the unconstrained current values of the proper type within Vector into the local instance...
Shape * _currentConstraints
virtual void set_read_p(bool state)
Override to disable setting of this flag.
virtual void createAndSetConstrainedValueBuffer()=0
Given the current Shape of the Array, generate the constrained value buffer and set it into the Vecto...
virtual void cacheCurrentConstraints()
Store the current super Array shape as the current constraints so we remember.
virtual bool haveConstraintsChangedSinceLastRead() const
Return whether the constraints used to create Vector._buf for the last read() have changed...
static auto_ptr< NCMLBaseArray > createFromArray(const libdap::Array &proto)
Make a new NCMLArray from the given proto, using the Array interface.