OPeNDAP Hyrax Back End Server (BES)  Updated for version 3.8.3
Todo List
Member BESDapResponseCache::cache_dataset (libdap::DDS &dds, const std::string &constraint, BESDapResponseBuilder *rb, libdap::ConstraintEvaluator *eval, std::string &cache_token)

This code is designed just for server function result caching. find a way to expand it to be general caching software for arbitrary DAP responses.

This code utilizes an "unsafe" unlocking scheme in which it depends on the calling method to unlock the cache file. We should build an encapsulating version of, say, the DDS (called CachedDDS?) that carries the lock information and that will unlock the underlying cache file when destroyed (along with destroying the DDS of course).

Member BESFileLockingCache::purge_file (const string &file)
This is a new feature; add to BESCache3
Member BESStoredDapResultCache::cache_dataset (libdap::DDS &dds, const std::string &constraint, BESDapResponseBuilder *rb, libdap::ConstraintEvaluator *eval, std::string &cache_token)

This code is designed just for server function result caching. find a way to expand it to be general caching software for arbitrary DAP responses.

This code utilizes an "unsafe" unlocking scheme in which it depends on the calling method to unlock the cache file. We should build an encapsulating version of, say, the DDS (called CachedDDS?) that carries the lock information and that will unlock the underlying cache file when destroyed (along with destroying the DDS of course).

Member libdap::function_grid (int argc, BaseType *argv[], DDS &, BaseType **btpp)
In order to be used by geogrid() , this code may have to be modified so that the maps and array are not re-read by the serialize() method. It might also be a good idea to change from the '?grid(SST,"10<time<20")' syntax in a URL to '?SST&grid(SST,"10<time<20")' even though it's more verbose in the URL, it would make the function a true 'selection operator' and allow several grids to be returned with selections in one request.
Member libdap::GeoConstraint::reorder_data_longitude_axis (Array &a, Array::Dim_iter lon_dim)
Fix this code so that it works with latitude as the rightmost map