bes
Updated for version 3.20.6
|
#include <AggMemberDatasetUsingLocationRef.h>
Public Member Functions | |
void | addPreDeleteCB (UseCountHitZeroCB *pCB) |
AggMemberDatasetUsingLocationRef (const AggMemberDatasetUsingLocationRef &proto) | |
AggMemberDatasetUsingLocationRef (const std::string &locationToLoad, const agg_util::DDSLoader &loaderToUse) | |
virtual void | fillDimensionCacheByUsingDDS () |
virtual void | flushDimensionCache () |
virtual unsigned int | getCachedDimensionSize (const std::string &dimName) const |
virtual const libdap::DDS * | getDDS () |
const std::string & | getLocation () const |
virtual int | getRefCount () const |
virtual bool | isDimensionCached (const std::string &dimName) const |
virtual void | loadDimensionCache (std::istream &istr) |
AggMemberDatasetUsingLocationRef & | operator= (const AggMemberDatasetUsingLocationRef &rhs) |
virtual int | ref () const |
virtual void | removeFromPool () const |
void | removePreDeleteCB (UseCountHitZeroCB *pCB) |
virtual void | saveDimensionCache (std::ostream &ostr) |
virtual void | setDimensionCacheFor (const Dimension &dim, bool throwIfFound) |
virtual std::string | toString () const |
virtual int | unref () const |
class AggMemberDatasetUsingLocationRef: Concrete subclass of AggMemberDataset for lazy-loading a location (file) if the DDS for the given dataset is needed.
Note: assignment and copy construction do not copy any loaded DDS, merely the location. Therefore, if getDDS() is used for one of these and modified, a copy of this will see the ORIGINAL dataset (will reload it) and NOT any changes to the version it copied from!
TODO Consider if we want to change the above by using an external reference count on the loaded object state...
Definition at line 60 of file AggMemberDatasetUsingLocationRef.h.
|
inherited |
Add uniquely. If it is added agan, the second time is ignored.
Definition at line 127 of file RCObject.cc.
|
virtualinherited |
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!
Implements agg_util::AggMemberDataset.
Definition at line 146 of file AggMemberDatasetWithDimensionCacheBase.cc.
|
virtualinherited |
Flush out any cache for the Dimensions so that it will have to be loaded.
Implements agg_util::AggMemberDataset.
Definition at line 161 of file AggMemberDatasetWithDimensionCacheBase.cc.
|
virtualinherited |
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. |
Implements agg_util::AggMemberDataset.
Definition at line 102 of file AggMemberDatasetWithDimensionCacheBase.cc.
|
virtual |
If not loaded yet, loads the DDS response, then returns it.
Implements agg_util::AggMemberDataset.
Definition at line 70 of file AggMemberDatasetUsingLocationRef.cc.
|
inherited |
The location to which the AggMemberDataset refers Note: this could be "" for some subclasses if they are virtual or nested
Definition at line 62 of file AggMemberDataset.cc.
|
virtualinherited |
Get the current reference count
Implements agg_util::RCObjectInterface.
Definition at line 99 of file RCObject.cc.
|
virtualinherited |
Return whether the dimension is already cached, or would have to be loaded to be found.
Implements agg_util::AggMemberDataset.
Definition at line 116 of file AggMemberDatasetWithDimensionCacheBase.cc.
|
virtualinherited |
Load the values in the dimension cache from the input stream
Implements agg_util::AggMemberDataset.
Definition at line 173 of file AggMemberDatasetWithDimensionCacheBase.cc.
|
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.
Definition at line 69 of file RCObject.cc.
|
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.
Definition at line 104 of file RCObject.cc.
|
inherited |
Remove it exists. If not, this unchanged.
Definition at line 140 of file RCObject.cc.
|
virtualinherited |
Append the values in the dimension cache to the output stream
Implements agg_util::AggMemberDataset.
Definition at line 167 of file AggMemberDatasetWithDimensionCacheBase.cc.
|
virtualinherited |
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. |
Implements agg_util::AggMemberDataset.
Definition at line 122 of file AggMemberDatasetWithDimensionCacheBase.cc.
|
virtualinherited |
Just prints the count and address
Implements agg_util::RCObjectInterface.
Reimplemented in ncml_module::NCMLElement, ncml_module::AggregationElement, ncml_module::NetcdfElement, ncml_module::VariableElement, ncml_module::DimensionElement, ncml_module::ScanElement, ncml_module::AttributeElement, ncml_module::ValuesElement, ncml_module::VariableAggElement, ncml_module::ReadMetadataElement, ncml_module::ExplicitElement, and ncml_module::RemoveElement.
Definition at line 114 of file RCObject.cc.
|
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.
Definition at line 76 of file RCObject.cc.