It is accomplished ...

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
ejakowatz
2002-07-09 12:24:59 +00:00
commit 52a3801208
2025 changed files with 472889 additions and 0 deletions
@@ -0,0 +1,71 @@
<html>
<title>Schedule Rationale</title>
<body>
<h1>Schedule Rationale</h1>
Below is an informal discussion of the rationale behind the Interface Kit team's
behemoth schedule. Various details may not reflect the current form of the schedule,
but the basic gist is what's really important here.
<br>
<hr>
<p>
First, let me head off the suggestion that we formally split into 3 or 4 stand-alone
projects: &nbsp; the Interface Kit, Application Kit and app_server are completely
dependent on one another in a way that no other set of system components is. Each
without the others can accomplish almost *nothing*; I think the existence of Integration
highlights this fact.
</p><p>
Each milestone listed has a number of tasks associated with it; these need to be listed
and the time for each estimated. These tasks should be as fine grained as possible.
Taking BView as an example, I would expect each method on BView to have its own entry
under milestones 1, 2, 3, 4 and 8 with entries added as necessary to milestones 18 to
22. "Why so detailed?" you say. I'm glad you asked. ;)
</p><p>
First off, the finer the schedule's granularity, the more realistic estimate you have for
the project as a whole. Asked to implement BView, one might be tempted to say "Oh, about
3 weeks," whereas an estimate of the time needed for each method might yield a total of
two to three times that. While the more realistic overall estimate may be more depressing
initially, being able to hit goals on or near the estimated date is much better for
morale in the long run than constantly being behind because all the estimates were too
low. Trust me on this, I've worked on *way* too many projects that went south because of
scheduling that was too broad -- usually because the project manager doesn't want to
"distress" the client by making them pay for the time to schedule correctly. Or design
correctly, but that's a different rant. =)
</p><p>
Second, a fine-grained schedule helps to ensure that nothing gets missed. You might
think it would be hard to forget to implement a BView method, but if you don't expressly
schedule for that method, there will be no interface, use case or technical specifications
or unit tests to fail because the method isn't doing anything. In fact, we might not
notice the missing functionality until some app that uses it dies a horrible death and
we have to figure out why.
</p><p>
Third, it helps us figure out what functionality is dependent on what -- which helps us
schedule our tasks in a logical sequence.
</p><p>
Fourth, it makes it much easier for someone that doesn't have a lot of time available or
much experience to pick something that they can tackle and know that they will be making
a meaningful contribution. It also makes it easier for us to keep track of who is doing
what on large items like BView: instead of saying "there's a bunch of stuff on BView
that needs doing," we can say "BView::StrokeEllipse() needs to be implemented" and know
that a specific person is responsible for that deliverable.
</p><p>
Fifth, as daunting as a detailed schedule looks like out of the gate, tasks are getting
completed *constantly* and it's very satisfying to see progress get made on a regular
basis. Ideally, one would like to be able to check on the progress each week and find
several items completed since the last time it was checked.
</p>
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,165 @@
<html>
<head>
<title>Application Kit Milestones</title>
</head>
<body>
<h1>Application Kit Milestones<hr></h1>
<ol>
<li>
Interface specs completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="4" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="196" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="right">2%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Use cases completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="4" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="196" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">2%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Unit tests completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="4" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="196" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">2%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Design discussions completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="4" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="196" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">2%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
<a href="Messaging.html">Messaging</a> complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="38" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="162" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="35" align="right">19%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
<li>
<a href="BHandler.html">BHandler</a> complete
<li>
<a href="BLooper.html">BLooper</a> complete
<li>
<a href="Roster.html">Roster</a> complete
<li>
<a href="Clipboard.html">Clipboard</a> complete
<li>
<a href="BCursor.html">BCursor</a> complete
<li>
<a href="ScriptingSupport.html">Scripting Support</a> complete
</li>
<li>
Alpha
</li>
<li>
Beta 1
</li>
<li>
Beta 2
</li>
<li>
Release Candidate 1
</li>
<li>
1.0!
</li>
</ol>
<!-- Not implemented yet
See the complete list of <a href="ApplicationKitTasks.html">Application Kit tasks</a>.
<br>
-->
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,305 @@
<html>
<head>
<title>BCursor Tasks</title>
</head>
<body>
<h1>BCursor Tasks<hr></h1>
<!-- summary table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task Summary</strong></th>
<th><strong>Owner</strong></th>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BCursor
</td>
<!-- owner -->
<td width="25%">
Gabe Yoder
</td>
</tr>
</table>
<br>
<br>
<br>
<br>
<br>
<!-- detail table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th width="100%"><strong>Task Details</strong></th>
<!-- <th><strong>Owner</strong></th> -->
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BCursor Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BCursor(const void* cursorData);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BCursor(BMessage* data);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BCursor();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t Archive(BMessage* into, bool deep = true) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
static BArchivable* Instantiate(BMessage* data);
</td>
</tr>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,930 @@
<html>
<head>
<title>BHandler Tasks</title>
</head>
<body>
<h1>BHandler Tasks<hr></h1>
<!-- summary table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task Summary</strong></th>
<th><strong>Owner</strong></th>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BHandler
</td>
<!-- owner -->
<td width="25%">
Erik Jaesler
</td>
</tr>
</table>
<br>
<br>
<br>
<br>
<br>
<!-- detail table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th width="100%"><strong>Task Details</strong></th>
<!-- <th><strong>Owner</strong></th> -->
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BHandler Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BHandler(const char* name = NULL);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BHandler(BMessage* data);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BHandler();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
static BArchivable* Instantiate(BMessage* data);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t Archive(BMessage* data, bool deep = true) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual void MessageReceived(BMessage* message);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BLooper* Looper() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void SetName(const char* name);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
const char* Name() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual void SetNextHandler(BHandler* handler);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BHandler* NextHandler() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual void AddFilter(BMessageFilter* filter);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual bool RemoveFilter(BMessageFilter* filter);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual void SetFilterList(BList* filters);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BList* FilterList();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool LockLooper();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t LockLooperWithTimeout(bigtime_t timeout);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void UnlockLooper();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual BHandler* ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier, int32 form, const char* property);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t GetSupportedSuites(BMessage* data);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StartWatching(BMessenger, uint32 what);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StartWatchingAll(BMessenger);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StopWatching(BMessenger, uint32 what);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StopWatchingAll(BMessenger);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StartWatching(BHandler* , uint32 what);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StartWatchingAll(BHandler* );
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StopWatching(BHandler* , uint32 what);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StopWatchingAll(BHandler* );
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual void SendNotices(uint32 what, const BMessage* = 0);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool IsWatched() const;
</td>
</tr>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,555 @@
<html>
<head>
<title>Clipboard Tasks</title>
</head>
<body>
<h1>Clipboard Tasks<hr></h1>
<!-- summary table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task Summary</strong></th>
<th><strong>Owner</strong></th>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BClipboard
</td>
<!-- owner -->
<td width="25%">
Gabe Yoder
</td>
</tr>
</table>
<br>
<br>
<br>
<br>
<br>
<!-- detail table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th width="100%"><strong>Task Details</strong></th>
<!-- <th><strong>Owner</strong></th> -->
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BClipboard Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BClipboard(const char* name, bool transient = false);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BClipboard();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
const char* Name() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
uint32 LocalCount() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
uint32 SystemCount() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StartWatching(BMessenger target);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StopWatching(BMessenger target);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool Lock();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void Unlock();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool IsLocked() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Clear();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Commit();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Revert();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BMessenger DataSource() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BMessage* Data() const;
</td>
</tr>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,955 @@
<html>
<head>
<title>Roster Tasks</title>
</head>
<body>
<h1>Roster Tasks<hr></h1>
<!-- summary table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task Summary</strong></th>
<th><strong>Owner</strong></th>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BRoster
</td>
<!-- owner -->
<td width="25%">
Joe Banafato
</td>
</tr>
</table>
<br>
<br>
<br>
<br>
<br>
<!-- detail table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th width="100%"><strong>Task Details</strong></th>
<!-- <th><strong>Owner</strong></th> -->
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BRoster Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BRoster();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
~BRoster();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool IsRunning(const char* mime_sig) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool IsRunning(entry_ref* ref) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
team_id TeamFor(const char* mime_sig) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
team_id TeamFor(entry_ref* ref) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void GetAppList(BList* team_id_list) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void GetAppList(const char* sig, BList* team_id_list) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t GetAppInfo(const char* sig, app_info* info) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t GetAppInfo(entry_ref* ref, app_info* info) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t GetRunningAppInfo(team_id team, app_info* info) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t GetActiveAppInfo(app_info* info) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t FindApp(const char* mime_type, entry_ref* app) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t FindApp(entry_ref* ref, entry_ref* app) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Broadcast(BMessage* msg) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Broadcast(BMessage* msg, BMessenger reply_to) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StartWatching(BMessenger target, uint32 event_mask = B_REQUEST_LAUNCHED | B_REQUEST_QUIT) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t StopWatching(BMessenger target) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t ActivateApp(team_id team) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Launch(const char* mime_type, BMessage* initial_msgs = NULL, team_id* app_team = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Launch(const char* mime_type, BList* message_list, team_id* app_team = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Launch(const char* mime_type, int argc, char** args, team_id* app_team = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Launch(const entry_ref* ref, const BMessage* initial_message = NULL, team_id* app_team = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Launch(const entry_ref* ref, const BList* message_list, team_id* app_team = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t Launch(const entry_ref* ref, int argc, const char* const* args, team_id* app_team = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void GetRecentDocuments(BMessage* refList, int32 maxCount, const char* ofType = NULL, const char* openedByAppSig = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void GetRecentDocuments(BMessage* refList, int32 maxCount, const char* ofTypeList[], int32 ofTypeListCount, const char* openedByAppSig = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void GetRecentFolders(BMessage* refList, int32 maxCount, const char* openedByAppSig = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void GetRecentApps(BMessage* refList, int32 maxCount) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void AddToRecentDocuments(const entry_ref* doc, const char* appSig = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void AddToRecentFolders(const entry_ref* folder,const char* appSig = NULL) const;
</td>
</tr>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,580 @@
<html>
<head>
<title>Scripting Support Tasks</title>
</head>
<body>
<h1>Scripting Support Tasks<hr></h1>
<!-- summary table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task Summary</strong></th>
<th><strong>Owner</strong></th>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BPropertyInfo
</td>
<!-- owner -->
<td width="25%">
Jeremy Rand
</td>
</tr>
</table>
<br>
<br>
<br>
<br>
<br>
<!-- detail table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th width="100%"><strong>Task Details</strong></th>
<!-- <th><strong>Owner</strong></th> -->
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BPropertyInfo Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BPropertyInfo(property_info* p = NULL, value_info* ci = NULL, bool free_on_delete = false);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BPropertyInfo();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual int32 FindMatch(BMessage* msg, int32 index, BMessage* spec, int32 form, const char* prop, void* data = NULL) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual bool IsFixedSize() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual type_code TypeCode() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ssize_t FlattenedSize() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t Flatten(void* buffer, ssize_t size) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual bool AllowsTypeCode(type_code code) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t Unflatten(type_code c, const void* buf, ssize_t s);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
const property_info* Properties() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
const value_info* Values() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
int32 CountProperties() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
int32 CountValues() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void PrintToStream() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
static bool FindCommand(uint32, int32, property_info* );
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
static bool FindSpecifier(uint32, property_info* );
</td>
</tr>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,789 @@
<html>
<head>
<title>Interface Kit Team Assignments</title>
</head>
<body>
<h1>
Interface Kit Team Assignments and Open Tasks
<hr>
</h1>
<h2>
Assignments:
</h2>
<table>
<tr>
<td>
Erik Jaesler
</td>
</tr>
<tr>
<td>
</td>
<td>
BMessageFilter
</td>
</tr>
<tr>
<td>
</td>
<td>
BHandler
</td>
</tr>
<tr>
<td>
</td>
<td>
BLooper
</td>
</tr>
<tr>
<td>
</td>
<td>
BAlert
</td>
</tr>
<tr>
<td>
</td>
<td>
BArchivable
</td>
</tr>
<tr>
<td>
</td>
<td>
BArchivable
</td>
</tr>
<tr>
<td>
</td>
<td>
BApplication
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Gabe Yoder
</td>
</tr>
<tr>
<td>
</td>
<td>
BClipboard
</td>
</tr>
<tr>
<td>
</td>
<td>
BCursor
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Graham Gilmore
</td>
</tr>
<tr>
<td>
</td>
<td>
BBlockCache
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Graham Macdonald
</td>
</tr>
<tr>
<td>
</td>
<td>
BPictureButton
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Greg Gelfond
</td>
</tr>
<tr>
<td>
</td>
<td>
BPoint
</td>
</tr>
<tr>
<td>
</td>
<td>
BShape
</td>
</tr>
<tr>
<td>
</td>
<td>
BStringItem
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Issac Yonemoto
</td>
</tr>
<tr>
<td>
</td>
<td>
BRect
</td>
</tr>
<tr>
<td>
</td>
<td>
BRegion
</td>
</tr>
<tr>
<td>
</td>
<td>
BList
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Jeremy Rand
</td>
</tr>
<tr>
<td>
</td>
<td>
BMessageQueue
</td>
</tr>
<tr>
<td>
</td>
<td>
BPropertyInfo
</td>
</tr>
<tr>
<td>
</td>
<td>
BDeskbar
</td>
</tr>
<tr>
<td>
</td>
<td>
BAutoLock
</td>
</tr>
<tr>
<td>
</td>
<td>
BLocker
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Joe Banafato
</td>
</tr>
<tr>
<td>
</td>
<td>
BRoster
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Justin Gasper
</td>
</tr>
<tr>
<td>
</td>
<td>
BMenu
</td>
</tr>
<tr>
<td>
</td>
<td>
BMenuBar
</td>
</tr>
<tr>
<td>
</td>
<td>
BMenuItem
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Marc Flerackers
</td>
</tr>
<tr>
<td>
</td>
<td>
BControl
</td>
</tr>
<tr>
<td>
</td>
<td>
BButton
</td>
</tr>
<tr>
<td>
</td>
<td>
BCheckBox
</td>
</tr>
<tr>
<td>
</td>
<td>
BRadioButton
</td>
</tr>
<tr>
<td>
</td>
<td>
BTab
</td>
</tr>
<tr>
<td>
</td>
<td>
BTabView
</td>
</tr>
<tr>
<td>
</td>
<td>
BBox
</td>
</tr>
<tr>
<td>
</td>
<td>
BStatusBar
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Staffan Hellstrom
</td>
</tr>
<tr>
<td>
</td>
<td>
BPolygon
</td>
</tr>
<tr>
<td>
</td>
<td>
BSlider
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Steve Vallee
</td>
</tr>
<tr>
<td>
</td>
<td>
BDataIO
</td>
</tr>
<tr>
<td>
</td>
<td>
BMallocIO
</td>
</tr>
<tr>
<td>
</td>
<td>
BMemoryIO
</td>
</tr>
<tr>
<td>
</td>
<td>
BPositionIO
</td>
</tr>
<tr>
<td>
</td>
<td>
Misc
</td>
</tr>
<tr>
<td>
</td>
<td>
BString Utility
</td>
</tr>
<tr>
<td>
</td>
<td>
BString
</td>
</tr>
<tr>
<td>
</td>
<td>
BStopWatch
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Ulrich Wimboeck
</td>
</tr>
<tr>
<td>
</td>
<td>
BListItem
</td>
</tr>
<tr>
<td>
</td>
<td>
BListView
</td>
</tr>
<tr>
<td>
</td>
<td>
BOutlineListView
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
William Bull
</td>
</tr>
<tr>
<td>
</td>
<td>
BMessage
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Xavier Castellan
</td>
</tr>
<tr>
<td>
</td>
<td>
BBitmap
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
</table>
<h2>
Open Tasks:
</h2>
<table>
<tr>
<td>
Application Kit
</td>
</tr>
<tr>
<td>
</td>
<td>
BInvoker
</td>
</tr>
<tr>
<td>
</td>
<td>
BMessageRunner
</td>
</tr>
<tr>
<td>
</td>
<td>
BMessenger
</td>
</tr>
<tr>
<td>
</td>
<td>
BMessenger Support
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Integration
</td>
</tr>
<tr>
<td>
</td>
<td>
BWindow
</td>
</tr>
<tr>
<td>
</td>
<td>
BView
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
<tr>
<td>
Interface Kit
</td>
</tr>
<tr>
<td>
</td>
<td>
BPicture
</td>
</tr>
<tr>
<td>
</td>
<td>
BScreen
</td>
</tr>
<tr>
<td>
</td>
<td>
BShapeIterator
</td>
</tr>
<tr>
<td>
</td>
<td>
Screen Support
</td>
</tr>
<tr>
<td>
</td>
<td>
BFont
</td>
</tr>
<tr>
<td>
</td>
<td>
Font Support
</td>
</tr>
<tr>
<td>
</td>
<td>
BColorControl
</td>
</tr>
<tr>
<td>
</td>
<td>
BStringView
</td>
</tr>
<tr>
<td>
</td>
<td>
BScrollBar
</td>
</tr>
<tr>
<td>
</td>
<td>
BScrollView
</td>
</tr>
<tr>
<td>
</td>
<td>
Scrollbar Config
</td>
</tr>
<tr>
<td>
</td>
<td>
BSeparatorItem
</td>
</tr>
<tr>
<td>
</td>
<td>
BMenuField
</td>
</tr>
<tr>
<td>
</td>
<td>
BPopUpMenu
</td>
</tr>
<tr>
<td>
</td>
<td>
Menu Config
</td>
</tr>
<tr>
<td>
</td>
<td>
BTextView
</td>
</tr>
<tr>
<td>
</td>
<td>
BTextControl
</td>
</tr>
<tr>
<td>
</td>
<td>
unicode_block
</td>
</tr>
<tr>
<td>
</td>
<td>
Deskbar Support
</td>
</tr>
<tr>
<td>
</td>
<td>
Mouse Config
</td>
</tr>
<tr>
<td>
</td>
<td>
Workspace Support
</td>
</tr>
<tr>
<td>
</td>
<td>
Keyboard Config
</td>
</tr>
<tr>
<td>
</td>
<td>
UI Color Info
</td>
</tr>
<tr>
<td>
</td>
<td>
Miscellaneous
</td>
</tr>
<tr>
<td>
</td>
<td>
BDragger
</td>
</tr>
<tr>
<td>
</td>
<td>
BShelf
</td>
</tr>
<tr>
<td>
</td>
<td>
BChannelControl
</td>
</tr>
<tr>
<td>
</td>
<td>
BChannelSlider
</td>
</tr>
<tr>
<td>
</td>
<td>
BMultiChannelControl
</td>
</tr>
<tr>
<td>
</td>
<td>
BOptionControl
</td>
</tr>
<tr>
<td>
</td>
<td>
BOptionPopUp
</td>
</tr>
<tr>
<td height="15" colspan="2"></td>
</tr>
</table>
<br>
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
+147
View File
@@ -0,0 +1,147 @@
<html>
<head>
<title>Interface Kit Team Schedule</title>
</head>
<body>
<h1>Interface Kit Team Schedule<hr></h1>
<p>
Here is the schedule for the Interface Kit Team. To help organize our work,
tasks have been broken into 4 general areas:
<ul>
<li><a href="ApplicationKit/ApplicationKitMilestones.html">Application Kit</a></li>
<li><a href="InterfaceKit/InterfaceKitMilestones.html">Interface Kit</a></li>
<li><a href="Integration/IntegrationMilestones.html">Integration</a></li>
<li><a href="SupportKit/SupportKitMilestones.html">Support Kit</a></li>
</ul>
</p><p>
Organizationally, it's best to consider these as separate projects within the
scope of the IK Team's charter. As such, core contributors should pick a
project and stick with it -- it will make things a lot easier to keep track of,
and losing track of stuff would be a bad thing. =)
</p><p>
DarkWyrm is the technical lead for the app_server; he has done an enormous amount
of research and he is currently in the best position to lead the effort.
</p><p>
Erik Jakowatz will continue in his capacity as overall project lead, as well as
being directly involved in Integration as technical lead.
</p><p>
A word of warning: this schedule is downright huge because of the sheer number of
items to be completed. There is a paper available in which the rationale behind the
schedule is <a href="Discussion.html">discussed</a>.
</p>
<hr>
<h2><a name="CurrentStatus"></a>Current Status</h2>
Here are some fuzzy indicators of what progress the team has made base on the number of
outstanding tasks completed. No warranty is made concerning the accuracy of these
graphs. =)
<br><br>
<!-- And here we go into table madness! -->
<table cellspacing="0">
<!-- sub-project header -->
<tr>
<td colspan="3" align="left"><strong>Overall</strong></td>
</tr>
<!-- progress graph -->
<tr>
<table cellspacing="0">
<tr>
<!-- how much is done -->
<td width="24" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="176" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">12%</td>
</tr>
</table>
</tr>
<!-- sub-project header -->
<tr>
<td colspan="3" align="left"><strong><br><br>Application Kit</strong></td>
</tr>
<!-- progress graph -->
<tr>
<table cellspacing="0">
<tr>
<!-- how much is done -->
<td width="4" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="196" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">2%</td>
</tr>
</table>
</tr>
<!-- sub-project header -->
<tr>
<td colspan="3" align="left"><strong><br><br>Interface Kit</strong></td>
</tr>
<!-- progress graph -->
<tr>
<table cellspacing="0">
<tr>
<!-- how much is done -->
<td width="8" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="192" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">4%</td>
</tr>
</table>
</tr>
<!-- sub-project header -->
<tr>
<td colspan="3" align="left"><strong><br><br>Integration</strong></td>
</tr>
<!-- progress graph -->
<tr>
<table cellspacing="0">
<tr>
<!-- how much is done -->
<td width="50" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="150" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">25%</td>
</tr>
</table>
</tr>
<!-- sub-project header -->
<tr>
<td colspan="3" align="left"><strong><br><br>Support Kit</strong></td>
</tr>
<!-- progress graph -->
<tr>
<table cellspacing="0">
<tr>
<!-- how much is done -->
<td width="40" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="160" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">20%</td>
</tr>
</table>
</tr>
</table>
<br>
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,513 @@
<html>
<head>
<title>BArchivable Tasks</title>
</head>
<body>
<h1>BArchivable Tasks<hr></h1>
<!-- summary table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task Summary</strong></th>
<th><strong>Owner</strong></th>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BArchivable
</td>
<!-- owner -->
<td width="25%">
Erik Jaesler
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BArchivable
</td>
<!-- owner -->
<td width="25%">
Erik Jaesler
</td>
</tr>
</table>
<br>
<br>
<br>
<br>
<br>
<!-- detail table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th width="100%"><strong>Task Details</strong></th>
<!-- <th><strong>Owner</strong></th> -->
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BArchivable Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BArchivable();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BArchivable(BMessage* from);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
~BArchivable();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t Archive(BMessage* into, bool deep = true) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
static BArchivable* Instantiate(BMessage* from);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t Perform(perform_code d, void* arg); ???
</td>
</tr>
<!-- Functions header -->
<tr>
<td colspan="7"><center><strong>BArchivable Functions</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BArchivable* instantiate_object(BMessage* from, image_id* id);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BArchivable* instantiate_object(BMessage* from);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool validate_instantiation(BMessage* from, const char* class_name);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
instantiation_func find_instantiation_func(const char* class_name, const char* sig);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
instantiation_func find_instantiation_func(const char* class_name);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
instantiation_func find_instantiation_func(BMessage* archive_data);
</td>
</tr>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,156 @@
<html>
<head>
<title>Integration Milestones</title>
</head>
<body>
<h1>Integration Milestones<hr></h1>
<ol>
<li>
Interface specs completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="50" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="150" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="right">25%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Use cases completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="50" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="150" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">25%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Unit tests completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="50" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="150" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">25%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Design discussions completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="50" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="150" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">25%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
<a href="BArchivable.html">BArchivable</a> complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="200" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="0" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="35" align="right">100%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
<li>
<a href="BApplication.html">BApplication</a> complete
<li>
<a href="BWindow.html">BWindow</a> complete
<li>
<a href="BView.html">BView</a> complete
</li>
<li>
Alpha
</li>
<li>
Beta 1
</li>
<li>
Beta 2
</li>
<li>
Release Candidate 1
</li>
<li>
1.0!
</li>
</ol>
<!-- Not implemented yet
See the complete list of <a href="IntegrationTasks.html">Integration tasks</a>.
<br>
-->
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,195 @@
<html>
<head>
<title>Interface Kit Milestones</title>
</head>
<body>
<h1>Interface Kit Milestones<hr></h1>
<ol>
<li>
Interface specs completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="6" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="194" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="right">3%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Use cases completed for all classes, functions, structs
</li>
<li>
Unit tests completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="4" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="196" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">2%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Design discussions completed for all classes, functions, structs
</li>
<li>
<a href="Group1Support.html">Group 1 Support</a> complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="50" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="150" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="35" align="right">25%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
<li>
<a href="Group2Support.html">Group 2 Support</a> complete
<li>
<a href="Group3Support.html">Group 3 Support</a> complete
<li>
<a href="ControlWidgets.html">Control Widgets</a> complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="16" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="184" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="35" align="right">8%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
<li>
<a href="Non-ControlWidgets.html">Non-Control Widgets</a> complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="26" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="174" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="35" align="right">13%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
<li>
<a href="ScrollingSupport.html">Scrolling Support</a> complete
<li>
<a href="MenuingSupport.html">Menuing Support</a> complete
<li>
<a href="ListViewSupport.html">ListView Support</a> complete
<li>
<a href="TextViewSupport.html">TextView Support</a> complete
<li>
<a href="Miscellaneous.html">Miscellaneous</a> complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="8" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="192" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="35" align="right">4%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
<li>
<a href="ReplicantSupport.html">Replicant Support</a> complete
<li>
<a href="AdvancedControlWidgets.html">Advanced Control Widgets</a> complete
</li>
<li>
Alpha
</li>
<li>
Beta 1
</li>
<li>
Beta 2
</li>
<li>
Release Candidate 1
</li>
<li>
1.0!
</li>
</ol>
<!-- Not implemented yet
See the complete list of <a href="InterfaceKitTasks.html">Interface Kit tasks</a>.
<br>
-->
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,339 @@
<html>
<head>
<title>BStopWatch Tasks</title>
</head>
<body>
<h1>BStopWatch Tasks<hr></h1>
<!-- master table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task</strong></th>
<th><strong>Owner</strong></th>
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>Class BStopWatch</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BStopWatch(const char *name, bool silent = false);
</td>
<!-- owner -->
<td>
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BStopWatch();
</td>
<!-- owner -->
<td>
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void Suspend();
</td>
<!-- owner -->
<td>
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void Resume();
</td>
<!-- owner -->
<td>
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bigtime_t Lap();
</td>
<!-- owner -->
<td>
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bigtime_t ElapsedTime() const;
</td>
<!-- owner -->
<td>
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void Reset();
</td>
<!-- owner -->
<td>
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
const char* Name() const;
</td>
<!-- owner -->
<td>
</td>
</tr>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>Hosted by:</small><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002 OpenBeOS Project</small>
</center>
</body>
</html>
@@ -0,0 +1,904 @@
<html>
<head>
<title>IO Tasks</title>
</head>
<body>
<h1>IO Tasks<hr></h1>
<!-- summary table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task Summary</strong></th>
<th><strong>Owner</strong></th>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BDataIO
</td>
<!-- owner -->
<td width="25%">
Steve Vallee
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BMallocIO
</td>
<!-- owner -->
<td width="25%">
Steve Vallee
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BMemoryIO
</td>
<!-- owner -->
<td width="25%">
Steve Vallee
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BPositionIO
</td>
<!-- owner -->
<td width="25%">
Steve Vallee
</td>
</tr>
</table>
<br>
<br>
<br>
<br>
<br>
<!-- detail table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th width="100%"><strong>Task Details</strong></th>
<!-- <th><strong>Owner</strong></th> -->
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BDataIO Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BDataIO
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BDataIO();
</td>
</tr>
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BMallocIO Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BMallocIO();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BMallocIO();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ssize_t ReadAt(off_t pos, void *buffer, size_t size);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ssize_t WriteAt(off_t pos, const void *buffer, size_t size);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual off_t Seek(off_t pos, uint32 seek_mode);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual off_t Position() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t SetSize(off_t size);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void SetBlockSize(size_t blocksize);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
const void* Buffer() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
size_t BufferLength() const;
</td>
</tr>
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BMemoryIO Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BMemoryIO(void *p, size_t len);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BMemoryIO(const void *p, size_t len);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BMemoryIO();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ssize_t ReadAt(off_t pos, void *buffer, size_t size);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ssize_t WriteAt(off_t pos, const void *buffer, size_t size);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual off_t Seek(off_t pos, uint32 seek_mode);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual off_t Position() const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t SetSize(off_t size);
</td>
</tr>
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BPositionIO Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BPositionIO();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BPositionIO();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ssize_t Read(void *buffer, size_t size);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ssize_t Write(const void *buffer, size_t size);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual status_t SetSize(off_t size);
</td>
</tr>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,168 @@
<html>
<head>
<title>Support Kit Milestones</title>
</head>
<body>
<h1>Support Kit Milestones<hr></h1>
<ol>
<li>
Interface specs completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="32" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="168" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="right">16%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Use cases completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="32" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="168" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">16%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Unit tests completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="32" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="168" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">16%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Design discussions completed for all classes, functions, structs
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="32" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="168" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">16%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
<a href="IO.html">IO</a> complete
<li>
<a href="Utilities.html">Utilities</a> complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="6" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="194" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="35" align="right">3%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
<li>
<a href="Synchronization.html">Synchronization</a> complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="120" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="80" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="35" align="right">60%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
</li>
<li>
Alpha
</li>
<li>
Beta 1
</li>
<li>
Beta 2
</li>
<li>
Release Candidate 1
</li>
<li>
1.0!
</li>
</ol>
<!-- Not implemented yet
See the complete list of <a href="SupportKitTasks.html">Support Kit tasks</a>.
<br>
-->
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,688 @@
<html>
<head>
<title>Synchronization Tasks</title>
</head>
<body>
<h1>Synchronization Tasks<hr></h1>
<!-- summary table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task Summary</strong></th>
<th><strong>Owner</strong></th>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BAutoLock
</td>
<!-- owner -->
<td width="25%">
Jeremy Rand
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
BLocker
</td>
<!-- owner -->
<td width="25%">
Jeremy Rand
</td>
</tr>
</table>
<br>
<br>
<br>
<br>
<br>
<!-- detail table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th width="100%"><strong>Task Details</strong></th>
<!-- <th><strong>Owner</strong></th> -->
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BAutoLock Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BAutolock(BLocker *lock);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BAutolock(BLocker &lock);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BAutolock(BLooper *looper);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
~BAutolock();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/blank-20.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool IsLocked();
</td>
</tr>
<!-- Class header -->
<tr>
<td colspan="7"><center><strong>BLocker Class</strong></center></td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BLocker();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BLocker(const char *name);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BLocker(bool benaphore_style);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BLocker(const char *name, bool benaphore_style);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
BLocker(const char *name, bool benaphore_style, bool);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
virtual ~BLocker();
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool Lock(void);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
status_t LockWithTimeout(bigtime_t timeout);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
void Unlock(void);
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
thread_id LockingThread(void) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
bool IsLocked(void) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
int32 CountLocks(void) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
int32 CountLockRequests(void) const;
</td>
</tr>
<tr>
<td>
<table>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
../../images/Check.gif
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
sem_id Sem(void) const;
</td>
</tr>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,83 @@
<html>
<head>
<title>Interface Kit Team Assignments</title>
</head>
<body>
<h1>
Interface Kit Team Assignments and Open Tasks
<hr>
</h1>
<h2>
Assignments:
</h2>
<table>
<scripting>
@for_each engineer in $Assignments.engineers
<tr>
<td>
$engineer.name
</td>
</tr>
@for_each etask in $engineer.tasks
<tr>
<td>
</td>
<td>
$etask.str
</td>
</tr>
@end
<tr>
<td height="15" colspan="2"></td>
</tr>
@end
</scripting>
</table>
<h2>
Open Tasks:
</h2>
<table>
<scripting>
@for_each section in $Assignments.sections
<tr>
<td>
$section.name
</td>
</tr>
@for_each stask in $section.tasks
<tr>
<td>
</td>
<td>
$stask.str
</td>
</tr>
@end
<tr>
<td height="15" colspan="2"></td>
</tr>
@end
</scripting>
</table>
<br>
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,167 @@
<html>
<head>
<scripting>
<title>$GROUP.name Milestones</title>
</scripting>
</head>
<body>
<scripting>
<h1>$GROUP.name Milestones<hr></h1>
</scripting>
<ol>
<li>
Interface specs completed for all classes, functions, structs
<scripting>
@if $GROUP.ispec_complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="$GROUP.ispec_table_complete" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="$GROUP.ispec_table_incomplete" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="right">$GROUP.ispec_complete%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
@end
</scripting>
</li>
<li>
Use cases completed for all classes, functions, structs
<scripting>
@if $GROUP.cases_complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="$GROUP.cases_table_complete" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="$GROUP.cases_table_incomplete" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">$GROUP.cases_complete%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
@end
</scripting>
</li>
<li>
Unit tests completed for all classes, functions, structs
<scripting>
@if $GROUP.tests_complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="$GROUP.tests_table_complete" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="$GROUP.tests_table_incomplete" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">$GROUP.tests_complete%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
@end
</scripting>
</li>
<li>
Design discussions completed for all classes, functions, structs
<scripting>
@if $GROUP.tspec_complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="$GROUP.tspec_table_complete" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="$GROUP.tspec_table_incomplete" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">$GROUP.tspec_complete%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
@end
</scripting>
</li>
<scripting>
@for_each milestone in $GROUP.milestones
<li>
<a href="$milestone.short_name##.html">$milestone.name</a>$milestone.note complete
@if $milestone.complete
<!-- Copy this table to each item when work begins on it -->
<!-- progress graph -->
<table cellspacing="0">
<tr>
<!-- spacer -->
<td width=10"></td>
<!-- how much is done -->
<td width="$milestone.table_complete" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="$milestone.table_incomplete" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="35" align="right">$milestone.complete%</td>
</tr>
</table>
<br><br>
<!-- end progress graph -->
@end
@end
</li>
</scripting>
<li>
Alpha
</li>
<li>
Beta 1
</li>
<li>
Beta 2
</li>
<li>
Release Candidate 1
</li>
<li>
1.0!
</li>
</ol>
<!-- Not implemented yet
<scripting>
See the complete list of <a href="$GROUP.short_name##Tasks.html">$GROUP.name tasks</a>.
</scripting>
<br>
-->
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,100 @@
<html>
<head>
<title>Interface Kit Team Schedule</title>
</head>
<body>
<h1>Interface Kit Team Schedule<hr></h1>
<p>
Here is the schedule for the Interface Kit Team. To help organize our work,
tasks have been broken into 4 general areas:
<ul>
<scripting>
@for_each group in $GROUPS
<li><a href="$group.short_name/$group.short_name##Milestones.html">$group.name</a>$group.note</li>
@end
</scripting>
</ul>
</p><p>
Organizationally, it's best to consider these as separate projects within the
scope of the IK Team's charter. As such, core contributors should pick a
project and stick with it -- it will make things a lot easier to keep track of,
and losing track of stuff would be a bad thing. =)
</p><p>
DarkWyrm is the technical lead for the app_server; he has done an enormous amount
of research and he is currently in the best position to lead the effort.
</p><p>
Erik Jakowatz will continue in his capacity as overall project lead, as well as
being directly involved in Integration as technical lead.
</p><p>
A word of warning: this schedule is downright huge because of the sheer number of
items to be completed. There is a paper available in which the rationale behind the
schedule is <a href="Discussion.html">discussed</a>.
</p>
<hr>
<h2><a name="CurrentStatus"></a>Current Status</h2>
Here are some fuzzy indicators of what progress the team has made base on the number of
outstanding tasks completed. No warranty is made concerning the accuracy of these
graphs. =)
<br><br>
<!-- And here we go into table madness! -->
<table cellspacing="0">
<!-- sub-project header -->
<tr>
<td colspan="3" align="left"><strong>Overall</strong></td>
</tr>
<!-- progress graph -->
<tr>
<table cellspacing="0">
<tr>
<!-- how much is done -->
<scripting>
<td width="$GROUPS.table_complete" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="$GROUPS.table_incomplete" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">$GROUPS.complete%</td>
</scripting>
</tr>
</table>
</tr>
<scripting>
@for_each group in $GROUPS
<!-- sub-project header -->
<tr>
<td colspan="3" align="left"><strong><br><br>$group.name</strong></td>
</tr>
<!-- progress graph -->
<tr>
<table cellspacing="0">
<tr>
<!-- how much is done -->
<td width="$group.table_complete" bgcolor="blue" align="left"></td>
<!-- how much is left -->
<td width="$group.table_incomplete" bgcolor="red" align="right"></td>
<!-- the above two translated into a percentage -->
<td width="25" align="center">$group.complete%</td>
</tr>
</table>
</tr>
@end
</scripting>
</table>
<br>
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,29 @@
<html>
<head>
<scripting>
<title>$GROUP.name Tasks</title>
</scripting>
<head>
<body>
<scripting>
<h1>$GROUP.name Tasks<hr></h1>
@for_each milestone in $GROUP.milestones
<a href="$milestone.short_name##Tasks.html">$milestone.name</a><br>
@end
</scripting>
<hr>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>
@@ -0,0 +1,254 @@
<html>
<head>
<scripting>
<title>$MILESTONE.name Tasks</title>
</head>
<body>
<h1>$MILESTONE.name Tasks<hr></h1>
</scripting>
<!-- summary table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th><strong>Task Summary</strong></th>
<th><strong>Owner</strong></th>
<scripting>
@for_each s in $MILESTONE
<tr>
<td>
<table>
<td><img src="
@if $s.is_ispec_complete
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
@if $s.is_cases_complete
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
@if $s.is_tests_complete
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
@if $s.is_tspec_complete
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
@if $s.is_impl_complete
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td width="100%">
$s.name
</td>
<!-- owner -->
<td width="25%">
$s.owner
</td>
</tr>
@end
</scripting>
</table>
<br>
<br>
<br>
<br>
<br>
<!-- detail table -->
<table border>
<!-- table column headers -->
<th>
<table>
<td>
<a href="#legend">
<img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/User.gif" width="22" height="22" alt="Use Cases" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec" border="0">
</a>
</td>
<td>
<a href="#legend">
<img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation" border="0">
</a>
</td>
</table>
</th>
<th width="100%"><strong>Task Details</strong></th>
<!-- <th><strong>Owner</strong></th> -->
<scripting>
@for_each s in $MILESTONE
<!-- $s.type header -->
<tr>
<td colspan="7"><center><strong>$s.name $s.type</strong></center></td>
</tr>
@for_each t in $s.tasks
<tr>
<td>
<table>
<td><img src="
@if $t.ispec
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Functional Spec"></td>
<td><img src="
@if $t.cases
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Use Cases"></td>
<td><img src="
@if $t.tests
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Unit Tests"></td>
<td><img src="
@if $t.tspec
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Technical Spec"></td>
<td><img src="
@if $t.impl
../../images/Check.gif
@else
../../images/blank-20.gif
@end
" width="22" height="22" alt="Implementation"></td>
</table>
</td>
<!-- task -->
<td>
$t.name
</td>
</tr>
@end
@end
</scripting>
</table>
<br><br>
<hr>
<br><br>
<!-- legend table -->
<a name="legend">
<table border>
<tr>
<td align="center"><strong>Legend</strong></td>
</tr>
<tr>
<td>
<table>
<tr>
<td><img src="../../images/DocumentDraw.gif" width="22" height="22" alt="Functional Spec"></td>
<td>Functional Spec</td>
</tr>
<tr>
<td><img src="../../images/User.gif" width="22" height="22" alt="Use Cases"></td>
<td>Use Cases</td>
</tr>
<tr>
<td><img src="../../images/Help.gif" width="22" height="22" alt="Unit Tests"></td>
<td>Unit Tests</td>
</tr>
<tr>
<td><img src="../../images/Hammer.gif" width="22" height="22" alt="Technical Spec"></td>
<td>Technical Spec</td>
</tr>
<tr>
<td><img src="../../images/GoalFlag.gif" width="22" height="22" alt="Implementation"></td>
<td>Implementation</td>
</tr>
<tr>
<td><img src="../../images/Check.gif" width="22" height="22" alt="Completed"></td>
<td>Completed</td>
</tr>
</table>
</td>
</tr>
</table>
</a>
<br>
<!-- The obligatory SourceForge plug -->
<center>
<small>The OpenBeOS project is hosted by:</small><br><br>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=33869&type=1" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
<p>
<small>Copyright &copy; 2001-2002
<a href="http://www.openbeos.org">OpenBeOS</a> Project</small>
</center>
</body>
</html>