casacore::TableExprGroupFuncBase Class Reference

Abstract base class for classes calculating an aggregated group result. More...

#include <ExprGroup.h>

Inheritance diagram for casacore::TableExprGroupFuncBase:
casacore::TableExprGroupAggr casacore::TableExprGroupExprId casacore::TableExprGroupFirst casacore::TableExprGroupFuncArrayBool casacore::TableExprGroupFuncArrayDate casacore::TableExprGroupFuncArrayDComplex casacore::TableExprGroupFuncArrayDouble casacore::TableExprGroupFuncArrayInt casacore::TableExprGroupFuncArrayString casacore::TableExprGroupFuncBool casacore::TableExprGroupFuncDate casacore::TableExprGroupFuncDComplex casacore::TableExprGroupFuncDouble casacore::TableExprGroupFuncInt casacore::TableExprGroupFuncString casacore::TableExprGroupHistBase casacore::TableExprGroupNull casacore::TableExprGroupRowid

List of all members.

Public Member Functions

 TableExprGroupFuncBase (TableExprNodeRep *node)
 Construct from the TaQL aggregation node.
virtual ~TableExprGroupFuncBase ()
virtual Bool isLazy () const
 Does the aggregate function use lazy semantics? The default implementation returns False.
uInt seqnr () const
 Get the function's sequence nr.
void setSeqnr (uInt seqnr)
 Set the function's sequence nr.
virtual void apply (const TableExprId &id)=0
 Get the operand's value for the given row and apply it to the aggregation.
virtual void finish ()
 If needed, finish the aggregation.
virtual CountedPtr< vector
< TableExprId > > 
getIds () const
 Get the assembled TableExprIds of a group.
virtual Bool getBool (const vector< TableExprId > &=vector< TableExprId >())
 Get the aggregated value.
virtual Int64 getInt (const vector< TableExprId > &=vector< TableExprId >())
virtual Double getDouble (const vector< TableExprId > &=vector< TableExprId >())
virtual DComplex getDComplex (const vector< TableExprId > &=vector< TableExprId >())
virtual MVTime getDate (const vector< TableExprId > &=vector< TableExprId >())
virtual String getString (const vector< TableExprId > &=vector< TableExprId >())
virtual MArray< BoolgetArrayBool (const vector< TableExprId > &=vector< TableExprId >())
virtual MArray< Int64getArrayInt (const vector< TableExprId > &=vector< TableExprId >())
virtual MArray< DoublegetArrayDouble (const vector< TableExprId > &=vector< TableExprId >())
virtual MArray< DComplex > getArrayDComplex (const vector< TableExprId > &=vector< TableExprId >())
virtual MArray< MVTimegetArrayDate (const vector< TableExprId > &=vector< TableExprId >())
virtual MArray< StringgetArrayString (const vector< TableExprId > &=vector< TableExprId >())

Protected Attributes

TableExprNodeRepitsNode
TableExprNodeRepitsOperand
uInt itsSeqnr

Private Member Functions

 TableExprGroupFuncBase (const TableExprGroupFuncBase &)
 Copying is not needed, thus not allowed.
TableExprGroupFuncBaseoperator= (const TableExprGroupFuncBase &)

Detailed Description

Abstract base class for classes calculating an aggregated group result.

Intended use:

Internal

Review Status

Test programs:
tExprGroup

Synopsis

The GROUPBY clause divides a table into groups for which aggregated results can be calculated like the mean or minimum. These results are calculated in classes derived from this abstract base class.
There is one such function object per aggregation per group. All aggregation objects of a group are combined in a std::vector. This vector is mapped to a TableExprGroupKeySet object to keep track of all groups and aggregations.
There are two types of aggregation function classes.

Most derived classes are immediate classes.

Definition at line 201 of file ExprGroup.h.


Constructor & Destructor Documentation

casacore::TableExprGroupFuncBase::TableExprGroupFuncBase ( TableExprNodeRep node  )  [explicit]

Construct from the TaQL aggregation node.

It keeps the operand of the aggregation node.

virtual casacore::TableExprGroupFuncBase::~TableExprGroupFuncBase (  )  [virtual]
casacore::TableExprGroupFuncBase::TableExprGroupFuncBase ( const TableExprGroupFuncBase  )  [private]

Copying is not needed, thus not allowed.


Member Function Documentation

virtual void casacore::TableExprGroupFuncBase::apply ( const TableExprId id  )  [pure virtual]

Get the operand's value for the given row and apply it to the aggregation.

This function should not be called for lazy classes.

Implemented in casacore::TableExprGroupNull, casacore::TableExprGroupFirst, casacore::TableExprGroupLast, casacore::TableExprGroupExprId, casacore::TableExprGroupRowid, casacore::TableExprGroupAggr, casacore::TableExprGroupCountAll, casacore::TableExprGroupCount, casacore::TableExprGroupAny, casacore::TableExprGroupAll, casacore::TableExprGroupNTrue, casacore::TableExprGroupNFalse, casacore::TableExprGroupMinInt, casacore::TableExprGroupMaxInt, casacore::TableExprGroupSumInt, casacore::TableExprGroupProductInt, casacore::TableExprGroupSumSqrInt, casacore::TableExprGroupMinDouble, casacore::TableExprGroupMaxDouble, casacore::TableExprGroupSumDouble, casacore::TableExprGroupProductDouble, casacore::TableExprGroupSumSqrDouble, casacore::TableExprGroupMeanDouble, casacore::TableExprGroupVarianceDouble, casacore::TableExprGroupRmsDouble, casacore::TableExprGroupFractileDouble, casacore::TableExprGroupSumDComplex, casacore::TableExprGroupProductDComplex, casacore::TableExprGroupSumSqrDComplex, casacore::TableExprGroupMeanDComplex, casacore::TableExprGroupArrayAny, casacore::TableExprGroupArrayAll, casacore::TableExprGroupArrayNTrue, casacore::TableExprGroupArrayNFalse, casacore::TableExprGroupMinArrayInt, casacore::TableExprGroupMaxArrayInt, casacore::TableExprGroupSumArrayInt, casacore::TableExprGroupProductArrayInt, casacore::TableExprGroupSumSqrArrayInt, casacore::TableExprGroupMinArrayDouble, casacore::TableExprGroupMaxArrayDouble, casacore::TableExprGroupSumArrayDouble, casacore::TableExprGroupProductArrayDouble, casacore::TableExprGroupSumSqrArrayDouble, casacore::TableExprGroupMeanArrayDouble, casacore::TableExprGroupVarianceArrayDouble, casacore::TableExprGroupRmsArrayDouble, casacore::TableExprGroupFractileArrayDouble, casacore::TableExprGroupSumArrayDComplex, casacore::TableExprGroupProductArrayDComplex, casacore::TableExprGroupSumSqrArrayDComplex, casacore::TableExprGroupMeanArrayDComplex, casacore::TableExprGroupArrayAnys, casacore::TableExprGroupArrayAlls, casacore::TableExprGroupArrayNTrues, casacore::TableExprGroupArrayNFalses, casacore::TableExprGroupMinsArrayInt, casacore::TableExprGroupMaxsArrayInt, casacore::TableExprGroupSumsArrayInt, casacore::TableExprGroupProductsArrayInt, casacore::TableExprGroupSumSqrsArrayInt, casacore::TableExprGroupMinsArrayDouble, casacore::TableExprGroupMaxsArrayDouble, casacore::TableExprGroupSumsArrayDouble, casacore::TableExprGroupProductsArrayDouble, casacore::TableExprGroupSumSqrsArrayDouble, casacore::TableExprGroupMeansArrayDouble, casacore::TableExprGroupVariancesArrayDouble, casacore::TableExprGroupRmssArrayDouble, casacore::TableExprGroupSumsArrayDComplex, casacore::TableExprGroupProductsArrayDComplex, casacore::TableExprGroupSumSqrsArrayDComplex, casacore::TableExprGroupMeansArrayDComplex, casacore::TableExprGroupHistScalar, casacore::TableExprGroupHistInt, and casacore::TableExprGroupHistDouble.

virtual void casacore::TableExprGroupFuncBase::finish (  )  [virtual]
virtual MArray<Bool> casacore::TableExprGroupFuncBase::getArrayBool ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual MArray<MVTime> casacore::TableExprGroupFuncBase::getArrayDate ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual MArray<DComplex> casacore::TableExprGroupFuncBase::getArrayDComplex ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual MArray<Double> casacore::TableExprGroupFuncBase::getArrayDouble ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual MArray<Int64> casacore::TableExprGroupFuncBase::getArrayInt ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual MArray<String> casacore::TableExprGroupFuncBase::getArrayString ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual Bool casacore::TableExprGroupFuncBase::getBool ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]

Get the aggregated value.

Immediate classes can return the already calculated value, while lazy classes will get the values of all rows given by the TableExprIds and do the aggregation.

Reimplemented in casacore::TableExprGroupFirst, and casacore::TableExprGroupFuncBool.

virtual MVTime casacore::TableExprGroupFuncBase::getDate ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual DComplex casacore::TableExprGroupFuncBase::getDComplex ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual Double casacore::TableExprGroupFuncBase::getDouble ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual CountedPtr<vector<TableExprId> > casacore::TableExprGroupFuncBase::getIds (  )  const [virtual]

Get the assembled TableExprIds of a group.

It is specifically meant for TableExprGroupExprId used for lazy aggregation.

Reimplemented in casacore::TableExprGroupExprId.

virtual Int64 casacore::TableExprGroupFuncBase::getInt ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual String casacore::TableExprGroupFuncBase::getString ( const vector< TableExprId > &  = vector< TableExprId >()  )  [virtual]
virtual Bool casacore::TableExprGroupFuncBase::isLazy (  )  const [virtual]
TableExprGroupFuncBase& casacore::TableExprGroupFuncBase::operator= ( const TableExprGroupFuncBase  )  [private]
uInt casacore::TableExprGroupFuncBase::seqnr (  )  const [inline]

Get the function's sequence nr.

Definition at line 212 of file ExprGroup.h.

References itsSeqnr.

void casacore::TableExprGroupFuncBase::setSeqnr ( uInt  seqnr  )  [inline]

Set the function's sequence nr.

Definition at line 215 of file ExprGroup.h.

References itsSeqnr.


Member Data Documentation

Definition at line 250 of file ExprGroup.h.

Definition at line 251 of file ExprGroup.h.

Referenced by casacore::TableExprGroupAggr::getArray().

Definition at line 252 of file ExprGroup.h.

Referenced by seqnr(), and setSeqnr().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1