bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
agg_util::ArrayJoinExistingAggregation Class Reference
Inheritance diagram for agg_util::ArrayJoinExistingAggregation:
Inheritance graph
Collaboration diagram for agg_util::ArrayJoinExistingAggregation:
Collaboration graph

Public Member Functions

 ArrayJoinExistingAggregation (const ArrayJoinExistingAggregation &rhs)
 
 ArrayJoinExistingAggregation (const libdap::Array &granuleTemplate, AMDList memberDatasets, std::unique_ptr< ArrayGetterInterface > arrayGetter, const Dimension &joinDim)
 
const AMDList & getDatasetList () const
 
ArrayJoinExistingAggregationoperator= (const ArrayJoinExistingAggregation &rhs)
 
virtual ArrayJoinExistingAggregationptr_duplicate ()
 
bool read () override
 
virtual bool serialize (libdap::ConstraintEvaluator &eval, libdap::DDS &dds, libdap::Marshaller &m, bool ce_eval)
 

Protected Member Functions

const ArrayGetterInterfacegetArrayGetterInterface () const
 
libdap::Array & getGranuleTemplateArray ()
 
void printConstraints (const Array &fromArray)
 
virtual void readConstrainedGranuleArraysAndAggregateDataHook ()
 
virtual void transferOutputConstraintsIntoGranuleTemplateHook ()
 

Detailed Description

Definition at line 44 of file ArrayJoinExistingAggregation.h.

Constructor & Destructor Documentation

◆ ArrayJoinExistingAggregation() [1/2]

agg_util::ArrayJoinExistingAggregation::ArrayJoinExistingAggregation ( const libdap::Array & granuleTemplate,
AMDList memberDatasets,
std::unique_ptr< ArrayGetterInterface > arrayGetter,
const Dimension & joinDim )

Construct a joinNew Array aggregation given the parameters.

Parameters
granuleTemplatethe Array to use as a prototype for the UNaggregated Array It is the object for the aggVar as loaded from memberDatasets[0].
memberDatasetslist 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).
arrayGettersmart ptr to the algorithm for getting out the constrained array from each individual AMDList DataDDS. Ownership transferred to this (clearly).
joinDimthe outer dimension we are using (with post-aggregation cardinality) for the joinExisting

Definition at line 50 of file ArrayJoinExistingAggregation.cc.

◆ ArrayJoinExistingAggregation() [2/2]

agg_util::ArrayJoinExistingAggregation::ArrayJoinExistingAggregation ( const ArrayJoinExistingAggregation & rhs)

Definition at line 74 of file ArrayJoinExistingAggregation.cc.

◆ ~ArrayJoinExistingAggregation()

agg_util::ArrayJoinExistingAggregation::~ArrayJoinExistingAggregation ( )
virtual

Definition at line 81 of file ArrayJoinExistingAggregation.cc.

Member Function Documentation

◆ getArrayGetterInterface()

const ArrayGetterInterface & agg_util::ArrayAggregationBase::getArrayGetterInterface ( ) const
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 168 of file ArrayAggregationBase.cc.

◆ getDatasetList()

const AMDList & agg_util::ArrayAggregationBase::getDatasetList ( ) const
inherited

Get the list of AggMemberDataset's that comprise this aggregation

Definition at line 146 of file ArrayAggregationBase.cc.

◆ getGranuleTemplateArray()

libdap::Array & agg_util::ArrayAggregationBase::getGranuleTemplateArray ( )
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 161 of file ArrayAggregationBase.cc.

◆ operator=()

ArrayJoinExistingAggregation & agg_util::ArrayJoinExistingAggregation::operator= ( const ArrayJoinExistingAggregation & rhs)

Definition at line 87 of file ArrayJoinExistingAggregation.cc.

◆ printConstraints()

void agg_util::ArrayAggregationBase::printConstraints ( const Array & fromArray)
protectedinherited

Print out the constraints on fromArray to the debug channel

Definition at line 153 of file ArrayAggregationBase.cc.

◆ ptr_duplicate()

ArrayJoinExistingAggregation * agg_util::ArrayJoinExistingAggregation::ptr_duplicate ( )
virtual

Virtual Constructor: Make a deep copy (clone) of the object and return it.

Returns
ptr to the cloned object.

Definition at line 99 of file ArrayJoinExistingAggregation.cc.

◆ read()

bool agg_util::ArrayAggregationBase::read ( )
overrideinherited

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.

Note
This implementation of read() will read all of the data for an aggregated variable. Child classes of this class can use specialized versions of serialize() to implement a different behavior so that data that are read in parts (e.g. slices of an Array) can also be written in parts. This can reduce access latency.
Exceptions
Canthrow BESError, minimally
Returns
whether it works

Definition at line 101 of file ArrayAggregationBase.cc.

◆ readConstrainedGranuleArraysAndAggregateDataHook()

void agg_util::ArrayJoinExistingAggregation::readConstrainedGranuleArraysAndAggregateDataHook ( )
protectedvirtual

The meat of the subclass impl of read(). Called from read() once this base class state is ready for the granule data.

Reimplemented from agg_util::ArrayAggregationBase.

Definition at line 311 of file ArrayJoinExistingAggregation.cc.

◆ serialize()

bool agg_util::ArrayJoinExistingAggregation::serialize ( libdap::ConstraintEvaluator & eval,
libdap::DDS & dds,
libdap::Marshaller & m,
bool ce_eval )
virtual

Definition at line 114 of file ArrayJoinExistingAggregation.cc.

◆ transferOutputConstraintsIntoGranuleTemplateHook()

void agg_util::ArrayJoinExistingAggregation::transferOutputConstraintsIntoGranuleTemplateHook ( )
protectedvirtual

IMPL of subclass hook for read() to copy granule constraints properly (inner dim ones).

Reimplemented from agg_util::ArrayAggregationBase.

Definition at line 298 of file ArrayJoinExistingAggregation.cc.


The documentation for this class was generated from the following files: