Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > f149f58f4a75af135bdb24f5dfe94165 > files > 1415

libdap-doc-3.9.3-3mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>libdap++: Todo List</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1><a class="anchor" name="todo">Todo List </a></h1><a class="anchor" name="_todo000001"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1AISResources.html#35cb470d61a9e94a013520f45514f600">libdap::AISResources::get_resource</a> (const string &amp;primary) </dt>
<dd>Make this return an empty ResourceVector is no matching resources are found. Clients would not need to call has_resource() which would save some time.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000040"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1Vector.html#df286762e63295675850c41cedf33370">libdap::Vector::var</a> (unsigned int i) </dt>
<dd>Is this method thread safe? If 'apartment threading' is used, I think so. But if the library is running in more than one thread, then this is not thread safe.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000002"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1Array.html#f72de85ed39eb9b2a89f2cb27f5fb724">libdap::Array::Array</a> (const string &amp;n, BaseType *v) </dt>
<dd>Force the Array::add_var() method to be used to add <em>v</em>. This version of add_var() calls Vector::add_var().<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000003"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1Array.html#1980e62ce7031fa0d280a469a89a0b72">libdap::Array::Array</a> (const string &amp;n, const string &amp;d, BaseType *v) </dt>
<dd>Force the Array::add_var() method to be used to add <em>v</em>. This version of add_var() calls Vector::add_var().<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000020"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1GeoConstraint.html#c7008d3cbd75838d30c7b5c8b5fe9baa">libdap::GeoConstraint::reorder_data_longitude_axis</a> (Array &amp;a) </dt>
<dd>Fix this code so that it works with latitude as the rightmost map </dd>
</dl>
<p>
<a class="anchor" name="_todo000004"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1AttrTable.html">libdap::AttrTable</a>  </dt>
<dd>Look at refactoring this by splitting it into three classes. Move the struct entry into its own calls (maybe called Attribute?), make AttrTable a child of that class and then make aliases a separate class, also a child of Attribute. Look at the design of the Java code.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000004"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1AttrTable.html">libdap::AttrTable</a>  </dt>
<dd>A problem with this class is that Attr_iter objects cannot be dereferenced to return attributes. Instead they must be passed to methods which require that you have access to the AttrTable object into which they point.03/09/04 jhrg<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000008"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1BaseType.html">libdap::BaseType</a>  </dt>
<dd>We really need a better way to get values out of these types, esp. the Float32, Int16, ..., types. In <em>most</em> cases we know the type, so a type specific method (one that requires a downcast to use) is OK. For example, Byte might have a method <code>dods_byte Byte::value()</code>. Sure you have to downcast from BaseType to Byte in order to use it, but you have to figure out you have a Byte to use Byte::buf2val() anyway, so what's the big deal? Having a method that returns the <em>value</em> would simplify code that reads from data sets to extract meta data (like lat/lon corner points, et c.).<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000007"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1BaseType.html#dca3c2621c4a509537c18362005d7f7f">libdap::BaseType::add_var</a> (BaseType *bt, Part part=nil) </dt>
<dd>We should get rid of the Part parameter and adopt the convention that the first variable is the Array and all subsequent ones are Maps (when dealing with a Grid, the only time Part matters). This would enable several methods to migrate from Structure, Sequence and Grid to Constructor.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000006"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1BaseType.html#4533905a450d2a7af32e7d5acd557676">libdap::BaseType::set_read_p</a> (bool state) </dt>
<dd>Look at making synthesized variables easier to implement and at making them more integrated into the overall CE evaluation process. Maybe the code that computes the synthesized var's value should be in the that variable's read() method? This might provide a way to get rid of the awkward 'projection functions' by replacing them with real children of BaseType. It would also provide a way to clean up the way the <em>synthesized_p</em> prop intrudes on the <em>read_p</em> prop.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000010"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1ConstraintEvaluator.html#bf7511f38a4c5f8fc0cde0eca91ef338">libdap::ConstraintEvaluator::append_constant</a> (BaseType *btp) </dt>
<dd>Update this comment (ConstraintEvaluator, not DDS. </dd>
</dl>
<p>
<a class="anchor" name="_todo000011"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1Constructor.html#f26f89e9c0732a9c32bd5e15d716a7d7">libdap::Constructor::is_linear</a> () </dt>
<dd>Change the name to is_flattenable or something like that. 05/16/03 jhrg<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000013"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1DDS.html#88c063f273e5aa68b38df4d8e09fb426">libdap::DDS::mark</a> (const string &amp;name, bool state) </dt>
<dd>This should throw an exception on error!!!<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000013"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1DDS.html#88c063f273e5aa68b38df4d8e09fb426">libdap::DDS::mark</a> (const string &amp;name, bool state) </dt>
<dd>These methods that use the btp_stack to keep track of the path from the top of a dataset to a particular variable can be rewritten to use the parent field instead.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000013"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1DDS.html#88c063f273e5aa68b38df4d8e09fb426">libdap::DDS::mark</a> (const string &amp;name, bool state) </dt>
<dd>All the methods that use names to identify variables should have counterparts that take BaseType pointers. </dd>
</dl>
<p>
<a class="anchor" name="_todo000012"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1DDS.html#2810a944fbdc7d21b08f2d8c19022b52">libdap::DDS::transfer_attributes</a> (DAS *das) </dt>
<dd>Generalize the code that treats the _dim_? attributes or make is obsolete by fixing the HDF4 server.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000018"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1DODSFilter.html">libdap::DODSFilter</a>  </dt>
<dd>Add a test to make sure that the required arguments are given. <p>
We need to rethink the ancillary file/directory stuff. I don't think it's ever been used...<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000017"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1DODSFilter.html#34bc91d37ce58fcbdc1a190f8eb3e3cb">libdap::DODSFilter::establish_timeout</a> (FILE *stream) const  </dt>
<dd>When the alarm handler is called, two CRLF pairs are dumped to the stream and then an Error object is sent. No attempt is made to write the 'correct' MIME headers for an Error object. Instead, a savvy client will know that when an exception is thrown during a deserialize operation, it should scan ahead in the input stream for an Error object. Add this, or a sensible variant once libdap++ supports reliable error delivery. Dumb clients will never get the Error object... </dd>
</dl>
<p>
<a class="anchor" name="_todo000019"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1DODSFilter.html#a802f48ceffcaff00634940067a1ba02">libdap::DODSFilter::DODSFilter</a> () </dt>
<dd>Add methods to provide a way to set all of the parameters this class contains. They can currently only be set using the argc/argv command line parameters. </dd>
</dl>
<p>
<a class="anchor" name="_todo000021"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1GeoConstraint.html#38326671c5124e653b450164c00fc490">libdap::GeoConstraint::GeoConstraint</a> () </dt>
<dd>Remove ds_name. 10/02/08 </dd>
</dl>
<p>
<a class="anchor" name="_todo000022"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1Grid.html">libdap::Grid</a>  </dt>
<dd>Move, in some sense, the _map_vars up to Constructor. Look at using Constructor's _var field for these. <p>
Along the same lines as the previous item, consider removing the Part enum and adopting the convention that the first variable added is the array and any subsequent variables are maps.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000023"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1GridGeoConstraint.html#96de4a7279f9a8aac7b6526ddd9d641f">libdap::GridGeoConstraint::GridGeoConstraint</a> (Grid *grid) </dt>
<dd>Remove ds_name. 10/2/08 </dd>
</dl>
<p>
<a class="anchor" name="_todo000029"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1HTTPCache.html">libdap::HTTPCache</a>  </dt>
<dd>Update documentation: get_cache_response() now also serves as is_url_in_cache() and is_url_valid() should only be called after a locked cached response is accessed using get_cahced_response(). These lock the cache for reading. The methods cache_response() and update_response() lock an entry for writing.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000029"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1HTTPCache.html">libdap::HTTPCache</a>  </dt>
<dd>Check that the lock-for-write and lock-for-read work together since it's possible that an entry in use might have a stream of readers and never free the 'read-lock' thus blocking a writer.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000031"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1HTTPConnect.html">libdap::HTTPConnect</a>  </dt>
<dd>Change the way this class returns information so that the headers and the stream (aka FILE pointer) are returned using an object. Design this object so that its destructor closes the stream (this will prevent resource leaks). It will also obviate the need for the (now broken) is_response_present() predicate.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000032"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1HTTPResponse.html">libdap::HTTPResponse</a>  </dt>
<dd>Maybe refactor so that the header parsing code is hear and not in HTTPConnect? </dd>
</dl>
<p>
<a class="anchor" name="_todo000033"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1Response.html">libdap::Response</a>  </dt>
<dd>If the code that parses the MIME headers was moved from Connect and HTTPConnect to this class and its children, it would be easier to build a FileConnect class (or maybe the specifics of the connection type could be held in the Response object and HTTPConnect and the to be written FileConnect would not be needed). </dd>
</dl>
<p>
<a class="anchor" name="_todo000035"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1Sequence.html">libdap::Sequence</a>  </dt>
<dd>Refactor along with Structure moving methods up into Constructor.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000035"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1Sequence.html">libdap::Sequence</a>  </dt>
<dd>Add an isEmpty() method which returns true if the Sequence is empty. This should work before and after calling deserialize().<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000034"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1Sequence.html#62d79555aa03b0a862314ccfdad090f8">libdap::Sequence::read_row</a> (int row, DDS &amp;dds, ConstraintEvaluator &amp;eval, bool ce_eval=true) </dt>
<dd>This code ignores the main reason for nesting the sequences, that if the outer Sequence's current instance fails the CE, there's no need to look at the values of the inner Sequence. But in the code that calls this method (serialize() and intern_data()) the CE is not evaluated until the inner-most Sequence (i.e., the leaf Sequence) is read. That means that each instance of the inner Sequence is read and the CE evaluated for each of those reads. To fix this, and the overall problem of complexity here, we need to re-think Sequences and how they behave. 11/13/2007 jhrg<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000038"></a> <dl>
<dt>Class <a class="el" href="classlibdap_1_1Structure.html">libdap::Structure</a>  </dt>
<dd>Refactor with Sequence moving methods up into Constructor.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000037"></a> <dl>
<dt>Member <a class="el" href="classlibdap_1_1Structure.html#01d94322cbae3e64becac5dcfd90936c">libdap::Structure::val2buf</a> (void *val, bool reuse=false) </dt>
<dd>Make this throw an exception </dd>
</dl>
<p>
<a class="anchor" name="_todo000009"></a> <dl>
<dt>Member <a class="el" href="namespacelibdap.html#d495b5febe1ea2b30f9fce7e31e98c9e">libdap::function_grid</a> (int argc, BaseType *argv[], DDS &amp;, BaseType **btpp) </dt>
<dd>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&lt;time&lt;20")' syntax in a URL to '?SST&amp;grid(SST,"10&lt;time&lt;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.<p>
</dd>
</dl>
<p>
<a class="anchor" name="_todo000039"></a> <dl>
<dt>Member <a class="el" href="namespacelibdap.html#4b1fc86f3e9e75f967ad66f07962d406">libdap::prune_spaces</a> (const string &amp;name) </dt>
<dd>Is this still needed? This function may predate the switch from libwww to libcurl and the latter may not need to have spaces removed. </dd>
</dl>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Oct 7 19:58:26 2009 for libdap++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>