Files
filesystem/doc/do-list.htm

77 lines
3.9 KiB
HTML

<title>Boost Filesystem Do-list</title>
<h1>
<img border="0" src="../../../boost.png" align="center" width="277" height="86">Filesystem
Do-list</h1>
<ul>
<li>Linux tests.<br>
&nbsp;</li>
<li>Windows: //network-name style paths need more analysis and test cases for system_complete()
and complete(). Also, path_test cases at line 410 need review, correction.<br>
&nbsp;</li>
<li>POSIX says &quot;<b><code>foo/</code></b>&quot; is equivalent to &quot;<b><code>foo/.</code></b>&quot;
Which is best for normal form? Add code and test cases.<br>
&nbsp;</li>
<li>Should operations.cpp assert or BOOST_ASSERT on preconditions?<br>
&nbsp;</li>
<li>Document path traits, including wpath_traits imbue().<br>
&nbsp;</li>
<li>Fix operations_test wrong error code messages &amp; harden test.<br>
&nbsp;</li>
<li>Move two recent HEAD operations_posix_windows.cpp fixes for __APPLE__ to
i18n operations.cpp.</li>
</ul>
<h2>Defer until after mini-review</h2>
<ul>
<li>Filtered directory iterator, glob syntax -&gt; regex syntax converter. See
Rich Johnson's <a href="http://lists.boost.org/boost-users/2004/01/5770.php">
lists.boost.org/boost-users/2004/01/5770.php</a>, and John Maddock's
<a href="http://lists.boost.org/boost-users/2004/01/5770.php">lists.boost.org/boost-users/2004/01/5770.php</a></li>
<li>Recursive directory iterator. See thread beginning with Thorsten Ottosen's
<a href="http://lists.boost.org/boost/2004/03/2842.php">lists.boost.org/boost/2004/03/2842.php</a><ul>
<li>Depth first vs breadth first - Unspecified. Most imps will use depth
first as more efficicient.</li>
<li>Issue of duplicates (caused by symlinks and hard links) is critical.
Both duplicate detecting and non-detecting are needed; non-detecting is far
more efficient, but some apps will require duplicate detection.<ul>
<li>Names are useless for dup detection because of links, other file
system alias mechanisms such as drive mapping, mounts.</li>
<li>inodes are unstable if handles are not held open, and it isn't
feasible to hold unlimited number of handles open.</li>
<li>Size, dates, etc., are subject to race conditions.</li>
<li>No one method is likely to serve all needs, but a starting point might
be to keep a hash-table keyed on a size/dates based signature, then do
equivalent() on all equal keys.</li>
</ul>
</li>
</ul>
</li>
<li>Note Terence Wilson's efficiency concerns re: filtering; see
<a href="http://lists.boost.org/MailArchives/boost/msg79583.php">
//lists.boost.org/MailArchives/boost/msg79583.php</a></li>
<li>Some or all of the above concerns may be easier to meet if
directory_iterator (or a wrapper) called a function object:<ul>
<li>Argument is const char * name or const path &amp; (is there a significant
efficiency difference?)</li>
<li>Return is a code:<ul>
<li>Continue; that is, return iterator pointing to this entry.</li>
<li>Skip; ignore this entry completely.</li>
<li>Skip returning this entry, but do iterate into it if directory
(assuming recursive iteration).</li>
<li>Do return this entry, but don't iterate into if if a directory (don't
recurse).</li>
<li>Skip and stop; return end iterator.</li>
<li>Do return this entry, but force end iterator on next increment.</li>
</ul>
</li>
</ul>
</li>
<li>Add a path::swap member function guaranteed not to throw. (Geurt Vos).</li>
</ul>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->02 June, 2005<!--webbot bot="Timestamp" endspan i-checksum="19912" --></p>
<p>© Copyright Beman Dawes, 2002</p>
<p> Use, modification, and distribution are subject to the Boost Software
License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt">
LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
www.boost.org/LICENSE_1_0.txt</a>)</p>