bes
Updated for version 3.20.6
|
#include <ArrayAggregateOnOuterDimension.h>
Public Member Functions | |
ArrayAggregateOnOuterDimension (const ArrayAggregateOnOuterDimension &proto) | |
ArrayAggregateOnOuterDimension (const libdap::Array &proto, const AMDList &memberDatasets, std::auto_ptr< ArrayGetterInterface > &arrayGetter, const Dimension &newDim) | |
const AMDList & | getDatasetList () const |
ArrayAggregateOnOuterDimension & | operator= (const ArrayAggregateOnOuterDimension &rhs) |
virtual ArrayAggregateOnOuterDimension * | ptr_duplicate () |
virtual bool | read () |
virtual bool | serialize (libdap::ConstraintEvaluator &eval, libdap::DDS &dds, libdap::Marshaller &m, bool ce_eval) |
virtual | ~ArrayAggregateOnOuterDimension () |
Protected Member Functions | |
const ArrayGetterInterface & | getArrayGetterInterface () const |
libdap::Array & | getGranuleTemplateArray () |
void | printConstraints (const Array &fromArray) |
virtual void | readConstrainedGranuleArraysAndAggregateDataHook () |
virtual void | transferOutputConstraintsIntoGranuleTemplateHook () |
class ArrayAggregateOnOuterDimension
Array variable which contains information for performing a joinNew (new outer dimension) aggregation of an Array variable using samples of this variable in a specified list of member datasets.
The list is specified as a list of RCPtr<AggMemberDataset>, i.e. reference-counted AggMemberDataset's (AMD). The AMD is in charge of lazy-loading it's contained DataDDS as needed as well as for only loading the required data for a read() call. In other words, read() on this subclass will respect the constraints given to the superclass Array.
Definition at line 77 of file ArrayAggregateOnOuterDimension.h.
agg_util::ArrayAggregateOnOuterDimension::ArrayAggregateOnOuterDimension | ( | const libdap::Array & | proto, |
const AMDList & | memberDatasets, | ||
std::auto_ptr< ArrayGetterInterface > & | arrayGetter, | ||
const Dimension & | newDim | ||
) |
Construct a joinNew Array aggregation given the parameters.
proto | the Array to use as a prototype for the UNaggregated Array (ie module the new dimension). It is the object for the aggVar as loaded from memberDatasets[0]. |
memberDatasets | list of the member datasets forming the aggregation. this list will be copied internally so memberDatasets may be destroyed after this call (though the element AggMemberDataset objects will be ref()'d in our copy). |
arrayGetter | smart ptr to the algorithm for getting out the constrained array from each individual AMDList DataDDS. Ownership transferred to this (clearly). |
newDim | the new outer dimension this instance will add to the proto Array template |
Definition at line 57 of file ArrayAggregateOnOuterDimension.cc.
agg_util::ArrayAggregateOnOuterDimension::ArrayAggregateOnOuterDimension | ( | const ArrayAggregateOnOuterDimension & | proto | ) |
Construct from a copy
Definition at line 69 of file ArrayAggregateOnOuterDimension.cc.
|
virtual |
Destroy any local memory
Definition at line 76 of file ArrayAggregateOnOuterDimension.cc.
|
protectedinherited |
Accessor for subclasses Note this is protected, so not const! Subclasses may mutate the return hence this, but should not delete it, hence the reference.
Definition at line 158 of file ArrayAggregationBase.cc.
|
inherited |
Get the list of AggMemberDataset's that comprise this aggregation
Definition at line 136 of file ArrayAggregationBase.cc.
|
protectedinherited |
Accessor for subclasses Note this is protected, so not const! Subclasses may mutate the return hence this, but should not delete it, hence the reference.
Definition at line 151 of file ArrayAggregationBase.cc.
ArrayAggregateOnOuterDimension & agg_util::ArrayAggregateOnOuterDimension::operator= | ( | const ArrayAggregateOnOuterDimension & | rhs | ) |
Assign this from rhs object.
rhs | the object to copy from |
Definition at line 89 of file ArrayAggregateOnOuterDimension.cc.
|
protectedinherited |
Print out the constraints on fromArray to the debug channel
Definition at line 143 of file ArrayAggregationBase.cc.
|
virtual |
Virtual Constructor: Make a deep copy (clone) of the object and return it.
Reimplemented from agg_util::ArrayAggregationBase.
Definition at line 83 of file ArrayAggregateOnOuterDimension.cc.
|
virtualinherited |
Base implementation that works for both joinNew and joinExisting. Sets ups constraints and things and then calls the subclass helper readAndAggregateGranules() for the specialized subclass behaviors.
Can | throw BESError, minimally |
Definition at line 94 of file ArrayAggregationBase.cc.
|
protectedvirtual |
Actually go through the constraints and stream the correctly constrained data into the superclass's output buffer for serializing out.
Reimplemented from agg_util::ArrayAggregationBase.
Definition at line 270 of file ArrayAggregateOnOuterDimension.cc.
|
virtual |
Specialization that implements a simple pipelining scheme. If an aggregation is made up from many 'slices' of different arrays, each will be read individually. This version sends each part as soon as it is read instead of building the entire response in memory and then sending it.
If this method is called and the variable has read_p set to true, then libdap::Array::serialize() will be called.
eval | |
dds | |
m | |
ce_eval |
Definition at line 123 of file ArrayAggregateOnOuterDimension.cc.
|
protectedvirtual |
Subclass hook for read() to copy granule constraints properly (inner dim ones).
Reimplemented from agg_util::ArrayAggregationBase.
Definition at line 253 of file ArrayAggregateOnOuterDimension.cc.