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 dap_html_form::write_html_form_interface (ostream &strm, DDS *dds, const string &url, bool html_header, bool netcdf3_file_response, bool netcdf4_file_response, const string &admin_name, const string &help_location)
Modify this code to expect a DDS whose BaseTypes are loaded with Attribute tables.
Member dap_usage::write_usage_response (ostream &strm, DDS &dds, DAS &das, const string &dataset_name, const string &server_name, bool httpheader)
Update this to use the DDX.
Class GDALDDS
Change DataDDS to DDS if we can... Doing that will enable the handler to use this to close the library using this class. That is not strictly needed, but it would make both the DDS and DataDDS responses work the same way.
Class HDF5DDS
Change DataDDS to DDS if we can... Doing that will enable the handler to use this to close the library using this class. That is not strictly needed, but it would make both the DDS and DataDDS responses work the same way.
Member libdap::function_swath2array (int argc, BaseType *argv[], DDS &, BaseType **btpp)

The lat and lon arrays are passed in, but there's an assumption that the source data array and the two lat and lon arrays are the same shape. But the code does not actually test that.

Enable multiple bands paired with just the two lat/lon arrays? Not sure if that is a good idea...

Enable multiple bands paired with just the two lat/lon arrays? Not sure if that is a good idea...

Enable multiple bands paired with just the two lat/lon arrays? Not sure if that is a good idea...

Member libdap::function_swath2grid (int argc, BaseType *argv[], DDS &, BaseType **btpp)

The lat and lon arrays are passed in, but there's an assumption that the source data array and the two lat and lon arrays are the same shape. But the code does not actually test that.

Enable multiple bands paired with just the two lat/lon arrays? Not sure if that is a good idea...

Enable multiple bands paired with just the two lat/lon arrays? Not sure if that is a good idea...

Enable multiple bands paired with just the two lat/lon arrays? Not sure if that is a good idea...

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
globalScope> Member print_attr (hid_t type, int loc, void *sm_buf)

This probably needs to be re-considered!

Due to the priority of the handler work, this function will not be

re-written in this re-engineering process. KY 2011-Nov. 14th