bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
|
#include <AggMemberDataset.h>
Public Member Functions | |
void | addPreDeleteCB (UseCountHitZeroCB *pCB) |
AggMemberDataset (const AggMemberDataset &proto) | |
AggMemberDataset (std::string location) | |
virtual void | fillDimensionCacheByUsingDDS ()=0 |
virtual void | flushDimensionCache ()=0 |
virtual unsigned int | getCachedDimensionSize (const std::string &dimName) const =0 |
virtual const libdap::DDS * | getDDS ()=0 |
const std::string & | getLocation () const |
virtual int | getRefCount () const |
virtual bool | isDimensionCached (const std::string &dimName) const =0 |
virtual void | loadDimensionCache (std::istream &istr)=0 |
AggMemberDataset & | operator= (const AggMemberDataset &rhs) |
virtual int | ref () const |
virtual void | removeFromPool () const |
void | removePreDeleteCB (UseCountHitZeroCB *pCB) |
virtual void | saveDimensionCache (std::ostream &ostr)=0 |
virtual void | setDimensionCacheFor (const Dimension &dim, bool throwIfFound)=0 |
virtual std::string | toString () const |
virtual int | unref () const |
Abstract helper superclass for allowing lazy access to the DDS for an aggregation. This is used during a read() if the dataset is needed in an aggregation.
Note: This inherits from RCObject so is a ref-counted object to avoid making excessive copies of it and especially of any contained DDS.
Currently, there are two concrete subclasses:
o AggMemberDatasetUsingLocationRef: to load an external location into a DDS as needed (lazy eval so not loaded unless in the output of read() )
o AggMemberDatasetDDSWrapper: to hold a pre-loaded DDS for the case of virtual or pre-loaded datasets (data declared in NcML file, nested aggregations, e.g.) In this case, getLocation() is presumed empty().
Definition at line 63 of file AggMemberDataset.h.
|
inherited |
Add uniquely. If it is added agan, the second time is ignored.
|
pure virtual |
Uses the getDDS() call in order to find all named dimensions within it and to seed them into the dimension cache table for faster later lookups. Potentially slow!
Implemented in agg_util::AggMemberDatasetWithDimensionCacheBase.
|
pure virtual |
Flush out any cache for the Dimensions so that it will have to be loaded.
Implemented in agg_util::AggMemberDatasetWithDimensionCacheBase.
|
pure virtual |
Get the size of the given dimension named dimName cached within the dataset. If not found in cache, throws.
If a cached value exists from a prior load of the DDS using loadDimensionCacheFromDDS() or from a call to setDimensionCacheFor(), return that.
Otherwise, this must load the DDS to get the values.
Implementation is left up to subclasses for efficiency.
agg_util::DimensionNotFoundException | if not located via any means. |
Implemented in agg_util::AggMemberDatasetWithDimensionCacheBase.
|
pure virtual |
Return the DDS for the location, loading it in if it hasn't yet been loaded. Can return NULL if there's a problem. (Not const due to lazy eval)
Implemented in agg_util::AggMemberDatasetDDSWrapper, agg_util::AggMemberDatasetSharedDDSWrapper, and agg_util::AggMemberDatasetUsingLocationRef.
const std::string & agg_util::AggMemberDataset::getLocation | ( | ) | const |
The location to which the AggMemberDataset refers Note: this could be "" for some subclasses if they are virtual or nested
|
virtualinherited |
Get the current reference count
Implements agg_util::RCObjectInterface.
|
pure virtual |
Return whether the dimension is already cached, or would have to be loaded to be found.
Implemented in agg_util::AggMemberDatasetWithDimensionCacheBase.
|
pure virtual |
Load the values in the dimension cache from the input stream
Implemented in agg_util::AggMemberDatasetWithDimensionCacheBase.
|
virtualinherited |
Increase the reference count by one. const since we do not consider the ref count part of the semantic constness of the rep
Implements agg_util::RCObjectInterface.
|
virtualinherited |
If the object is in an auto-delete pool, remove it from the pool and force it to only delete when it's ref count goes to 0. Useful when we desire a particular object stay around outside of the pool's lifetime.
Implements agg_util::RCObjectInterface.
|
inherited |
Remove it exists. If not, this unchanged.
|
pure virtual |
Append the values in the dimension cache to the output stream
Implemented in agg_util::AggMemberDatasetWithDimensionCacheBase.
|
pure virtual |
Seed the dimension cache using the given dimension, so that later calls to getDimensionSize for dim.name will return the dim.size immediately without checking or loading the actual DDS.
If it already exists and throwIfFound then will throw an AggregationException.
If it exists and !throwIfFound, will replace the old one.
dim | the dimension to seed |
if | true, throw if name take. Else replace original. |
Implemented in agg_util::AggMemberDatasetWithDimensionCacheBase.
|
virtualinherited |
Just prints the count and address
Implements agg_util::RCObjectInterface.
Reimplemented in ncml_module::AggregationElement, ncml_module::AttributeElement, ncml_module::DimensionElement, ncml_module::ExplicitElement, ncml_module::NCMLElement, ncml_module::NetcdfElement, ncml_module::ReadMetadataElement, ncml_module::RemoveElement, ncml_module::ScanElement, ncml_module::ValuesElement, ncml_module::VariableAggElement, and ncml_module::VariableElement.
|
virtualinherited |
Decrease the reference count by one. If it goes from 1 to 0, delete this and this is no longer valid.
It is illegal to unref() an object with a count of 0. We don't throw to allow use in dtors, so the caller is assumed not to do it!
const since the reference count is not part of the semantic constness of the rep
Implements agg_util::RCObjectInterface.