Libdap refactor: Difference between revisions
From OPeNDAP Documentation
⧼opendap2-jumptonavigation⧽
Line 16: | Line 16: | ||
== libdap code/features to refactor == | == libdap code/features to refactor == | ||
* We need a XDRStreamUnMarshaller - this will let me remove lots of the FILE* code. | * We need a XDRStreamUnMarshaller - this will let me remove lots of the FILE* code. Done. I wrote this as a class that takes an istream and then wrote a streambuf that supports underflow - what you need to support an istream - and that takes file descriptor to be used an an input source. | ||
* Change HTTPConnect so that it works with data in memory when possible | * Change HTTPConnect so that it works with data in memory when possible |
Revision as of 22:38, 22 September 2009
libdap code/features to remove
- In DODSFilter
- Remove 'COMPRESSION_FOR_SERVER3' code
- Remove the FILE* methods - this will break some of the older 'cgi handlers' but those should be removed anyway
- CGI processing code in general - how much of this is being used at all?
- read_ancillary_das() methods - replace with direct calls to Ancillary?
- Look at the DODSFilter unit tests to make sure that some of the CGI code is not used there.
- cgi-util.cc
- Remove the FILE* functions and/or replace with ostream ones if those are not already there.
AIS - remove completelyDone- XDRFileMarshaller - We can remove this
- XDRFileUnMarshaller - We can remove this once we have an XDRStreamUnMarshaller and...
- Look at Response, HTTPResponse, and see how they use FILE*. Can this be changed to an ostream easily? More of a refactor... Well, no, not easily. Teh problem is that the flex-based scanners all use FILE*s to read data and those buffer their reads. This complicates things a bit. Instead of a single thing to change, look below at the libcurl section
libdap code/features to refactor
- We need a XDRStreamUnMarshaller - this will let me remove lots of the FILE* code. Done. I wrote this as a class that takes an istream and then wrote a streambuf that supports underflow - what you need to support an istream - and that takes file descriptor to be used an an input source.
- Change HTTPConnect so that it works with data in memory when possible