[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Cheetah Documentation: HTML Conformance
From: |
Jeffrey D. Oldham |
Subject: |
Cheetah Documentation: HTML Conformance |
Date: |
Thu, 26 Aug 2004 09:47:52 -0700 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Debian/1.6-5 |
The attached patch moves the Cheetah documentation up to HTML 4.01
standards. It also updated one dead link www.acl.lanl.gov/cheetah to
www.pooma.com and removed one dead link.
Is this patch acceptable to commit to the Cheetah CVS repository?
--
Jeffrey D. Oldham
address@hidden
2004-Aug-26 Jeffrey D. Oldham <address@hidden>
* ControllerGuide.html: Move the HTML up to the 4.01 standards.
* ControllerImplReference.html: Likewise.
* ControllerReference.html: Likewise.
* MatchingHandlerGuide.html: Likewise.
* MatchingHandlerReference.html: Likewise.
* Overview.html: Likewise.
Correct links.
* SerializationGuide.html: Move the HTML up to the 4.01 standards.
* SerializationReference.html: Likewise.
* index.html: Likewise.
Correct links.
Index: ControllerGuide.html
===================================================================
RCS file: /home/pooma/Repository/cheetah/doc/ControllerGuide.html,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 ControllerGuide.html
*** ControllerGuide.html 16 Aug 2004 19:14:53 -0000 1.1.1.1
--- ControllerGuide.html 26 Aug 2004 16:41:36 -0000
***************
*** 1,6 ****
<HTML>
<HEAD>
! <META NAME="Generator" CONTENT="Corel WordPerfect 8">
<TITLE>Cheetah Messaging</TITLE>
</HEAD>
--- 1,10 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+ <!-- index.html : entry point for POOMA tutorials -->
+ <!-- $Id: index.html,v 1.4 2004/08/23 18:46:39 pooma Exp $ -->
+
<HTML>
<HEAD>
! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Cheetah Messaging</TITLE>
</HEAD>
Index: ControllerImplReference.html
===================================================================
RCS file: /home/pooma/Repository/cheetah/doc/ControllerImplReference.html,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 ControllerImplReference.html
*** ControllerImplReference.html 16 Aug 2004 19:14:53 -0000 1.1.1.1
--- ControllerImplReference.html 26 Aug 2004 16:41:36 -0000
***************
*** 1,6 ****
<HTML>
<HEAD>
! <META NAME="Generator" CONTENT="Corel WordPerfect 8">
<TITLE>Cheetah ControllerImpl Reference</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
--- 1,10 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+ <!-- index.html : entry point for POOMA tutorials -->
+ <!-- $Id: index.html,v 1.4 2004/08/23 18:46:39 pooma Exp $ -->
+
<HTML>
<HEAD>
! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Cheetah ControllerImpl Reference</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
*************** the interface and guidance for how to de
*** 17,43 ****
layers.</P>
<H3>Base Classes</H3>
! <P><FONT FACE="Courier"><FONT SIZE=+1>RefCounted</FONT></FONT></P>
<P>All ControllerImpls are reference counted, so that multiple Controllers
can easily
refer to on ControllerImpl. This base class, together with RefCountedPtr,
ensures
that the ControllerImpl is destroyed when all of the Controllers referring to
it are
gone.</P>
<H3>Constructors and Destructor</H3>
! <FONT FACE="Courier"><FONT SIZE=+1>
! <P>ControllerImpl()</FONT></FONT></P>
<P>The null ctor initializes the number of contexts and the current context
to invalid
values. The constructor for the subclass must overwrite these values with
appropriate ones once the correct values are known.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>Virtual ~Controller()</FONT></FONT></P>
<P>The destructor is defined to be virtual so that the subclasses'
destructors are
properly called, but takes no other action;</P>
<H3>Typedefs</H3>
! <P><FONT FACE="Courier"><FONT SIZE=+1>typedef void (*Handler_t)(int who, int
tag, void*
buf,int len);</FONT></FONT></P>
<P>The type for a handler called by ainvoke. 'Who' is the calling context,
'tag' is
--- 21,47 ----
layers.</P>
<H3>Base Classes</H3>
! <P><FONT FACE="Courier"><FONT SIZE="+1">RefCounted</FONT></FONT></P>
<P>All ControllerImpls are reference counted, so that multiple Controllers
can easily
refer to on ControllerImpl. This base class, together with RefCountedPtr,
ensures
that the ControllerImpl is destroyed when all of the Controllers referring to
it are
gone.</P>
<H3>Constructors and Destructor</H3>
! <FONT FACE="Courier"><FONT SIZE="+1">
! ControllerImpl()</FONT></FONT>
<P>The null ctor initializes the number of contexts and the current context
to invalid
values. The constructor for the subclass must overwrite these values with
appropriate ones once the correct values are known.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">Virtual
~Controller()</FONT></FONT></P>
<P>The destructor is defined to be virtual so that the subclasses'
destructors are
properly called, but takes no other action;</P>
<H3>Typedefs</H3>
! <P><FONT FACE="Courier"><FONT SIZE="+1">typedef void (*Handler_t)(int who,
int tag, void*
buf,int len);</FONT></FONT></P>
<P>The type for a handler called by ainvoke. 'Who' is the calling context,
'tag' is
*************** buffer. The system will handle deleting
*** 51,68 ****
<P>Return the number of contexts that are available through this controller.
Asserts
that the controller is valid.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>int mycontext() const</FONT></FONT></P>
<P>Return the number for this context in [0...ncontexts-1]. Asserts that the
controller
is valid.</P>
<H3>Messaging Functions</H3>
! <P><FONT FACE="Courier"><FONT SIZE=+1>virtual int registerHandler(Handler_t
handler) = 0</FONT></FONT></P>
<P>Register a new ainvoke handler with this controller. Returns an integer
tag to be
used in ainvoke to call this function remotely.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>Virtual void ainvoke(int context, int
tag, void *buffer,
int len, int *local_bell) = 0</FONT></FONT></P>
<P>Call the function registered as 'tag' in 'context' with the provided
'buffer' of
--- 55,72 ----
<P>Return the number of contexts that are available through this controller.
Asserts
that the controller is valid.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">int mycontext()
const</FONT></FONT></P>
<P>Return the number for this context in [0...ncontexts-1]. Asserts that the
controller
is valid.</P>
<H3>Messaging Functions</H3>
! <P><FONT FACE="Courier"><FONT SIZE="+1">virtual int registerHandler(Handler_t
handler) = 0</FONT></FONT></P>
<P>Register a new ainvoke handler with this controller. Returns an integer
tag to be
used in ainvoke to call this function remotely.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">Virtual void ainvoke(int context, int
tag, void *buffer,
int len, int *local_bell) = 0</FONT></FONT></P>
<P>Call the function registered as 'tag' in 'context' with the provided
'buffer' of
*************** how to return that value in the buffer.<
*** 85,91 ****
<P>The 'poll' or 'wait' function below must be called at some point in the
remote
context for the ainvoke to be called in that context. </P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>virtual void put(int context, void
*remote, void *local,
int len, int *local_bell, int *remote_bell) = 0</FONT></FONT></P>
<P>Put data in the 'local' buffer of length 'len' to the 'remote' buffer in
another
--- 89,95 ----
<P>The 'poll' or 'wait' function below must be called at some point in the
remote
context for the ainvoke to be called in that context. </P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">virtual void put(int context, void
*remote, void *local,
int len, int *local_bell, int *remote_bell) = 0</FONT></FONT></P>
<P>Put data in the 'local' buffer of length 'len' to the 'remote' buffer in
another
*************** filled.</P>
*** 96,102 ****
<P>In general, the 'poll' or 'wait' function below must be called at some
point in the
remote context for the data to be copied into the remote buffer.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>virtual void get(int context, void
*remote, void *local,
int len, int *local_bell, int *remote_bell) = 0</FONT></FONT></P>
<P>Get data from a buffer 'remote' of length 'len' in a remote 'context' and
put it in
--- 100,106 ----
<P>In general, the 'poll' or 'wait' function below must be called at some
point in the
remote context for the data to be copied into the remote buffer.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">virtual void get(int context, void
*remote, void *local,
int len, int *local_bell, int *remote_bell) = 0</FONT></FONT></P>
<P>Get data from a buffer 'remote' of length 'len' in a remote 'context' and
put it in
*************** the local buffer.</P>
*** 107,124 ****
<P>In general, the 'poll' or 'wait' function below must be called in the
local and
remote contexts for the data to be copied.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>virtual void barrier() =
0</FONT></FONT></P>
<P>Wait until all of the other contexts associated with this controller to
also call
barrier. No context will exit the barrier until all of the contexts have
entered the
barrier.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>virtual void poll() =
0</FONT></FONT></P>
<P>Process the currently pending message events that have come off the wire,
but
don't wait around for any new things to come off the wire.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>virtual void wait(volatile int *bell,
int value) = 0</FONT></FONT></P>
<P>Wait until the provided bell reaches the provided value. Call poll while
waiting
to keep messages flowing.</P>
--- 111,128 ----
<P>In general, the 'poll' or 'wait' function below must be called in the
local and
remote contexts for the data to be copied.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">virtual void barrier() =
0</FONT></FONT></P>
<P>Wait until all of the other contexts associated with this controller to
also call
barrier. No context will exit the barrier until all of the contexts have
entered the
barrier.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">virtual void poll() =
0</FONT></FONT></P>
<P>Process the currently pending message events that have come off the wire,
but
don't wait around for any new things to come off the wire.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">virtual void wait(volatile int *bell,
int value) = 0</FONT></FONT></P>
<P>Wait until the provided bell reaches the provided value. Call poll while
waiting
to keep messages flowing.</P>
*************** arguments, and we want to be able to add
*** 129,135 ****
without modifying any of the existing subclasses. We handle this with a
factory
mechanism.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>typedef ControllerImpl*
(*Factory_t)(int &argc, char
**&argv)</FONT></FONT></P>
<P>Each subclass that can be initialized through the command line arguments
must
--- 133,139 ----
without modifying any of the existing subclasses. We handle this with a
factory
mechanism.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">typedef ControllerImpl*
(*Factory_t)(int &argc, char
**&argv)</FONT></FONT></P>
<P>Each subclass that can be initialized through the command line arguments
must
*************** the command line arguments, and it must
*** 138,144 ****
ControllerImpl of that subclass type. It can use any of the command line
arguments it chooses to in order to initialize the new ControllerImpl.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>static void registerFactory(const char
*name, Factory_t)</FONT></FONT></P>
<P>Before you try to use the command line argument factory, each subclass must
register its factory function by calling this function together with its
name. Each
--- 142,148 ----
ControllerImpl of that subclass type. It can use any of the command line
arguments it chooses to in order to initialize the new ControllerImpl.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">static void registerFactory(const
char *name, Factory_t)</FONT></FONT></P>
<P>Before you try to use the command line argument factory, each subclass must
register its factory function by calling this function together with its
name. Each
*************** subclass should choose a unique name, an
*** 146,152 ****
command line will be the factory function that gets called to generate the
appropriate ControllerImpl.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>static ControllerImpl* factory(int
&argc, char **&argv)</FONT></FONT></P>
<P>In the constructor for Controller which takes command line arguments, it
calls
this static member function of the abstract base class ControllerImpl. This
--- 150,156 ----
command line will be the factory function that gets called to generate the
appropriate ControllerImpl.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">static ControllerImpl* factory(int
&argc, char **&argv)</FONT></FONT></P>
<P>In the constructor for Controller which takes command line arguments, it
calls
this static member function of the abstract base class ControllerImpl. This
Index: ControllerReference.html
===================================================================
RCS file: /home/pooma/Repository/cheetah/doc/ControllerReference.html,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 ControllerReference.html
*** ControllerReference.html 16 Aug 2004 19:14:53 -0000 1.1.1.1
--- ControllerReference.html 26 Aug 2004 16:41:36 -0000
***************
*** 1,6 ****
<HTML>
<HEAD>
! <META NAME="Generator" CONTENT="Corel WordPerfect 8">
<TITLE>Cheetah Controller Reference</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
--- 1,10 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+ <!-- index.html : entry point for POOMA tutorials -->
+ <!-- $Id: index.html,v 1.4 2004/08/23 18:46:39 pooma Exp $ -->
+
<HTML>
<HEAD>
! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Cheetah Controller Reference</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
Index: MatchingHandlerGuide.html
===================================================================
RCS file: /home/pooma/Repository/cheetah/doc/MatchingHandlerGuide.html,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 MatchingHandlerGuide.html
*** MatchingHandlerGuide.html 16 Aug 2004 19:14:53 -0000 1.1.1.1
--- MatchingHandlerGuide.html 26 Aug 2004 16:41:36 -0000
***************
*** 1,6 ****
<HTML>
<HEAD>
! <META NAME="Generator" CONTENT="Corel WordPerfect 8">
<TITLE>ACL-Cheetah: MatchingHandler Guide</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
--- 1,10 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+ <!-- index.html : entry point for POOMA tutorials -->
+ <!-- $Id: index.html,v 1.4 2004/08/23 18:46:39 pooma Exp $ -->
+
<HTML>
<HEAD>
! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>ACL-Cheetah: MatchingHandler Guide</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
*************** to call the function 'void foo(T1,T2,T3)
*** 77,88 ****
say:
</P>
! <FONT FACE="Courier"><FONT SIZE=+1> <P>
mh.request(c1,my_tag,foo);</FONT></FONT></P>
<P>On the sending side you have objects x1, x2 and x3 of types T1, T2, T3,
and you
send them by saying:</P>
! <FONT FACE="Courier"><FONT SIZE=+1><P>
mh.send(c2,my_tag,x1,x2,x3);</FONT></FONT></P>
<P>If the request has not been posted before the send arrives, it is
queued up in the MatchingHandler on c2 until the request is
--- 81,92 ----
say:
</P>
! <FONT FACE="Courier"><FONT SIZE="+1">mh.request(c1,my_tag,foo);</FONT></FONT>
<P>On the sending side you have objects x1, x2 and x3 of types T1, T2, T3,
and you
send them by saying:</P>
! <FONT FACE="Courier"><FONT
SIZE="+1">mh.send(c2,my_tag,x1,x2,x3);</FONT></FONT>
<P>If the request has not been posted before the send arrives, it is
queued up in the MatchingHandler on c2 until the request is
Index: MatchingHandlerReference.html
===================================================================
RCS file: /home/pooma/Repository/cheetah/doc/MatchingHandlerReference.html,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 MatchingHandlerReference.html
*** MatchingHandlerReference.html 16 Aug 2004 19:14:53 -0000 1.1.1.1
--- MatchingHandlerReference.html 26 Aug 2004 16:41:36 -0000
***************
*** 1,6 ****
<HTML>
<HEAD>
! <META NAME="Generator" CONTENT="Corel WordPerfect 8">
<TITLE>Cheetah MatchingHandler Reference</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
--- 1,10 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+ <!-- index.html : entry point for POOMA tutorials -->
+ <!-- $Id: index.html,v 1.4 2004/08/23 18:46:39 pooma Exp $ -->
+
<HTML>
<HEAD>
! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Cheetah MatchingHandler Reference</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
*************** an appropriate handler is posted, and us
*** 14,70 ****
automatically pack and unpack C++ objects. For a more in depth discussion of
the motivation and use of MatchingHandlers, see the <A
HREF="MatchingHandlerGuide.html">Guide</A>.</P>
<H3>Constructors and Destructor</H3>
! <FONT FACE="Courier"><FONT SIZE=+1>
! <P>MatchingHandler()</FONT></FONT></P>
<P>The default constructor leaves the MatchingHandler uninitialized. It
cannot be
used until you give it a controller using the 'controller' member function
below.</P>
! <P><FONT FACE="Courier"><FONT
SIZE=+1>MatchingHandler(Controller)</FONT></FONT></P>
<P>Construct with a controller. If the controller is valid the
MatchingHandler
synchronizes with the corresponding MatchingHandlers in the other contexts and
is ready to use.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>~MatchingHandler()</FONT></FONT></P>
<P>Destroy the MatchingHandler. All of the corresponding MatchingHandlers
should also get destroyed.</P>
<H3>Query Functions</H3>
! <P><FONT FACE="Courier"><FONT SIZE=+1>Controller controller()
const</FONT></FONT></P>
<P>Get a copy of the controller for this MatchingHandler.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>void
controller(Controller)</FONT></FONT></P>
<P>Change the controller for this MatchingHandler to a new on.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>int actions(int
fromContext)</FONT></FONT></P>
<P>Return the current number of actions that are pending for messages
arriving from
the given other context. If no argument is given, count ALL actions.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>int messages(int
fromContext)</FONT></FONT></P>
<P>Return the current number of messages that have arrived from the given
other
context, but have not yet been given to an action. If no argument is given,
count
ALL messages.</P>
<H3>Send</H3>
! <P><FONT FACE="Courier"><FONT SIZE=+1>inline void send(int toContext, int
matchingTag)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class T1><BR>
inline void send(int to, int tag, const T1&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class T1, class T2><BR>
inline void send(int to, int tag, const T1&, const
T2&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class T1, class T2, class
T3><BR>
inline void send(int to, int tag, const T1&, const T2&,
const T3&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class T1, class T2, class
T3, class T4><BR>
inline void send(int to, int tag, const T1&, const T2&,
const T3&, const T4&)</FONT></FONT></P>
--- 18,74 ----
automatically pack and unpack C++ objects. For a more in depth discussion of
the motivation and use of MatchingHandlers, see the <A
HREF="MatchingHandlerGuide.html">Guide</A>.</P>
<H3>Constructors and Destructor</H3>
! <FONT FACE="Courier"><FONT SIZE="+1">
! MatchingHandler()</FONT></FONT>
<P>The default constructor leaves the MatchingHandler uninitialized. It
cannot be
used until you give it a controller using the 'controller' member function
below.</P>
! <P><FONT FACE="Courier"><FONT
SIZE="+1">MatchingHandler(Controller)</FONT></FONT></P>
<P>Construct with a controller. If the controller is valid the
MatchingHandler
synchronizes with the corresponding MatchingHandlers in the other contexts and
is ready to use.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">~MatchingHandler()</FONT></FONT></P>
<P>Destroy the MatchingHandler. All of the corresponding MatchingHandlers
should also get destroyed.</P>
<H3>Query Functions</H3>
! <P><FONT FACE="Courier"><FONT SIZE="+1">Controller controller()
const</FONT></FONT></P>
<P>Get a copy of the controller for this MatchingHandler.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">void
controller(Controller)</FONT></FONT></P>
<P>Change the controller for this MatchingHandler to a new on.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">int actions(int
fromContext)</FONT></FONT></P>
<P>Return the current number of actions that are pending for messages
arriving from
the given other context. If no argument is given, count ALL actions.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">int messages(int
fromContext)</FONT></FONT></P>
<P>Return the current number of messages that have arrived from the given
other
context, but have not yet been given to an action. If no argument is given,
count
ALL messages.</P>
<H3>Send</H3>
! <P><FONT FACE="Courier"><FONT SIZE="+1">inline void send(int toContext, int
matchingTag)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class T1><BR>
inline void send(int to, int tag, const T1&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class T1, class T2><BR>
inline void send(int to, int tag, const T1&, const
T2&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class T1, class T2, class
T3><BR>
inline void send(int to, int tag, const T1&, const T2&,
const T3&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class T1, class T2, class
T3, class T4><BR>
inline void send(int to, int tag, const T1&, const T2&,
const T3&, const T4&)</FONT></FONT></P>
*************** tag and zero, one, two, three or four ar
*** 73,95 ****
using the default <A HREF="SerializationGuide.html">serializer</A>.</P>
<H3>SendWith</H3>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class SerializeTag><BR>
inline void sendWith(const SerializeTag&, int toContext,
int matchingTag)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class SerializeTag, class
T1><BR>
inline void sendWith(const SerializeTag&, int to, int
tag, const T1&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class SerializeTag, class
T1, class T2><BR>
inline void sendWith(const SerializeTag&, int to, int
tag, const T1&, const T2&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class SerializeTag, class
T1, class T2, class T3><BR>
inline void sendWith(const SerializeTag&, int to, int
tag, const T1&, const T2&, const T3&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class SerializeTag, class
T1, class T2, class
T3, class T4><BR>
inline void sendWith(const SerializeTag&, int to, int
tag, const T1&, const T2&, const T3&, const
T4&)</FONT></FONT></P>
--- 77,99 ----
using the default <A HREF="SerializationGuide.html">serializer</A>.</P>
<H3>SendWith</H3>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class SerializeTag><BR>
inline void sendWith(const SerializeTag&, int toContext,
int matchingTag)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class SerializeTag, class
T1><BR>
inline void sendWith(const SerializeTag&, int to, int
tag, const T1&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class SerializeTag, class
T1, class T2><BR>
inline void sendWith(const SerializeTag&, int to, int
tag, const T1&, const T2&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class SerializeTag, class
T1, class T2, class T3><BR>
inline void sendWith(const SerializeTag&, int to, int
tag, const T1&, const T2&, const T3&)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class SerializeTag, class
T1, class T2, class
T3, class T4><BR>
inline void sendWith(const SerializeTag&, int to, int
tag, const T1&, const T2&, const T3&, const
T4&)</FONT></FONT></P>
*************** tag and zero, one, two, three or four ar
*** 99,121 ****
using the serializer specialized using the given SerializerTag.</P>
<H3><A HREF="SerializationGuide.html"></A>Request</H3>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret><BR>
inline void request(int fromContext, int matchingTag,
Ret (*handler)())</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1><BR>
inline void request(int from, int tag, Ret
(*handler)(T1))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T3><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2,T3))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T3, class T4><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2,T3,T4))</FONT></FONT></P>
--- 103,125 ----
using the serializer specialized using the given SerializerTag.</P>
<H3><A HREF="SerializationGuide.html"></A>Request</H3>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret><BR>
inline void request(int fromContext, int matchingTag,
Ret (*handler)())</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class
T1><BR>
inline void request(int from, int tag, Ret
(*handler)(T1))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T3><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2,T3))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T3, class T4><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2,T3,T4))</FONT></FONT></P>
*************** The types are deduced on the requesting
*** 126,144 ****
present there is no checking to make sure they correspond to the types on the
sending side.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T><BR>
inline void request(int from, int tag, Ret
(*handler)(T1), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T3, class T><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2,T3), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T3, class
T4, class T><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2,T3,T4), T* obj)</FONT></FONT></P>
--- 130,148 ----
present there is no checking to make sure they correspond to the types on the
sending side.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T><BR>
inline void request(int from, int tag, Ret
(*handler)(T1), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T3, class T><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2,T3), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T3, class
T4, class T><BR>
inline void request(int from, int tag, Ret
(*handler)(T1,T2,T3,T4), T* obj)</FONT></FONT></P>
*************** first argument a SerializeTag used to pi
*** 153,191 ****
serializer on the receiving end should correspond to the serializer on the
sending
end, though this is not explicitly checked.</P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class SerializeTag, class
Ret><BR>
inline void requestWith(SerializeTag&, int fromContext,
int matchingTag, Ret (*handler)())</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T3><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2,T3))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T3, class T4><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2,T3,T4))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T3, class T><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2,T3), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE=+1>template<class Ret, class T1, class
T2, class T3, class
T4, class T><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2,T3,T4), T* obj)</FONT></FONT></P>
--- 157,195 ----
serializer on the receiving end should correspond to the serializer on the
sending
end, though this is not explicitly checked.</P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class SerializeTag, class
Ret><BR>
inline void requestWith(SerializeTag&, int fromContext,
int matchingTag, Ret (*handler)())</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class
T1><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T3><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2,T3))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T3, class T4><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2,T3,T4))</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T3, class T><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2,T3), T* obj)</FONT></FONT></P>
! <P><FONT FACE="Courier"><FONT SIZE="+1">template<class Ret, class T1,
class T2, class T3, class
T4, class T><BR>
inline void requestWith(SerializeTag&, int from, int
tag, Ret (*handler)(T1,T2,T3,T4), T* obj)</FONT></FONT></P>
Index: Overview.html
===================================================================
RCS file: /home/pooma/Repository/cheetah/doc/Overview.html,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 Overview.html
*** Overview.html 16 Aug 2004 19:14:53 -0000 1.1.1.1
--- Overview.html 26 Aug 2004 16:41:36 -0000
***************
*** 1,6 ****
<HTML>
<HEAD>
! <META NAME="Generator" CONTENT="Corel WordPerfect 8">
<TITLE>One-Sided Overview</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
--- 1,10 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+ <!-- index.html : entry point for POOMA tutorials -->
+ <!-- $Id: index.html,v 1.4 2004/08/23 18:46:39 pooma Exp $ -->
+
<HTML>
<HEAD>
! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>One-Sided Overview</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
*************** bell is rung when the data has been copi
*** 113,120 ****
a remote context) and move it to a local buffer (specified by a pointer). A
remote
bell is rung when the data has been copied out of the remote buffer, and a
local
bell is rung when the data has been copied into the local buffer.</P>
! <H2><A NAME="ainvoke">ainvoke</H2>
! </A>
<P>Call a function (specified by a function ID produced by register_function
below)
in a remote context (specified by a context ID), and pass to that function a
buffer
from the local context.</P>
--- 117,124 ----
a remote context) and move it to a local buffer (specified by a pointer). A
remote
bell is rung when the data has been copied out of the remote buffer, and a
local
bell is rung when the data has been copied into the local buffer.</P>
! <H2><A NAME="ainvoke">ainvoke</a></H2>
!
<P>Call a function (specified by a function ID produced by register_function
below)
in a remote context (specified by a context ID), and pass to that function a
buffer
from the local context.</P>
*************** buffer and a byte count for the buffer.
*** 127,149 ****
'register_function' and it returns an integer ID. For this to work properly,
all of
the contexts have to call 'register_function' for the same functions in the
same
order since new function IDs are generated by just incrementing an
integer.</P>
! <H2><A NAME="barrier">barrier</H2>
<P>This is a classic barrier. All of the contexts call barrier, none of them
leave the
! barrier </A>until all have entered it. If someone forgets to call barrier
then everybody
else waits forever.</P>
! <H2><A NAME="poll/wait">poll/wait</H2>
<P>Since we're not counting on a polling thread in the background, the user
has to
kick the system periodically by calling poll. If poll is never called, no
messages
are guaranteed to be delivered. That means that code which is the moral
equivalent of:</P>
<FONT FACE="Courier" SIZE="+1">
! <P> while (*bell < 1) ;</FONT><FONT FACE="Courier"></FONT></P>
! </A>
<P>will never exit because poll is never called. Instead you have to
write</P>
<FONT FACE="Courier" SIZE="+1">
! <P> while (*bell < 1) poll();</FONT></P>
<P>That loop is written for you in the 'wait' function.</P>
<H2><A NAME="startup/teardown">startup/teardown</A></H2>
--- 131,152 ----
'register_function' and it returns an integer ID. For this to work properly,
all of
the contexts have to call 'register_function' for the same functions in the
same
order since new function IDs are generated by just incrementing an
integer.</P>
! <H2><A NAME="barrier">barrier</a></H2>
<P>This is a classic barrier. All of the contexts call barrier, none of them
leave the
! barrier until all have entered it. If someone forgets to call barrier then
everybody
else waits forever.</P>
! <H2><A NAME="poll/wait">poll/wait</a></H2>
<P>Since we're not counting on a polling thread in the background, the user
has to
kick the system periodically by calling poll. If poll is never called, no
messages
are guaranteed to be delivered. That means that code which is the moral
equivalent of:</P>
<FONT FACE="Courier" SIZE="+1">
! while (*bell < 1) ;</FONT><FONT FACE="Courier"></FONT>
<P>will never exit because poll is never called. Instead you have to
write</P>
<FONT FACE="Courier" SIZE="+1">
! while (*bell < 1) poll();</FONT>
<P>That loop is written for you in the 'wait' function.</P>
<H2><A NAME="startup/teardown">startup/teardown</A></H2>
*************** parallel behavior.</P>
*** 158,165 ****
<P>At teardown, all processes may exist after the finalize call, but
their behavior is undefined. The program should exit shortly after
calling finalize, and the behavior should not depend on whether all of
! the parallel processes still exist after calling finalize.<A
! HREF="OneSidedOverview.html"></A></P>
</BODY>
</HTML>
--- 161,167 ----
<P>At teardown, all processes may exist after the finalize call, but
their behavior is undefined. The program should exit shortly after
calling finalize, and the behavior should not depend on whether all of
! the parallel processes still exist after calling finalize.</P>
</BODY>
</HTML>
Index: SerializationGuide.html
===================================================================
RCS file: /home/pooma/Repository/cheetah/doc/SerializationGuide.html,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 SerializationGuide.html
*** SerializationGuide.html 16 Aug 2004 19:14:53 -0000 1.1.1.1
--- SerializationGuide.html 26 Aug 2004 16:41:36 -0000
***************
*** 1,6 ****
<HTML>
<HEAD>
! <META NAME="Generator" CONTENT="Corel WordPerfect 8">
<TITLE>Cheetah Serialization</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
--- 1,10 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+ <!-- index.html : entry point for POOMA tutorials -->
+ <!-- $Id: index.html,v 1.4 2004/08/23 18:46:39 pooma Exp $ -->
+
<HTML>
<HEAD>
! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Cheetah Serialization</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
*************** HREF="SerializationReference.html">API
*** 22,39 ****
Reference</A>.</P>
<UL>
! <LI>Calculate the size that an object will have when you've packed it.</LI>
<UL> <LI>call sizeof</LI> </UL>
<LI>Pack an object into a provided buffer. For some objects this
! will be just a buffer copy, for others it will be more complex.</LI>
<UL> <LI>call the copy constructor</LI> </UL>
! <LI>Unpack an object from a provided buffer.</LI>
<UL> <LI>Return a pointer into the buffer</LI> </UL>
! <LI>Clean up an unpacked object so you can delete the space.</LI>
! <UL> <LI>call the destructor in place, but don't call delete.</LI> </UL>
</UL>
<P>These four operations will work fine for objects that can use a
--- 26,47 ----
Reference</A>.</P>
<UL>
! <LI>Calculate the size that an object will have when you've packed it.
<UL> <LI>call sizeof</LI> </UL>
+ </LI>
<LI>Pack an object into a provided buffer. For some objects this
! will be just a buffer copy, for others it will be more complex.
<UL> <LI>call the copy constructor</LI> </UL>
+ </LI>
! <LI>Unpack an object from a provided buffer.
<UL> <LI>Return a pointer into the buffer</LI> </UL>
+ </LI>
! <LI>Clean up an unpacked object so you can delete the space.
! <UL> <LI>call the destructor in place, but don't call delete.</LI></UL>
! </LI>
</UL>
<P>These four operations will work fine for objects that can use a
Index: SerializationReference.html
===================================================================
RCS file: /home/pooma/Repository/cheetah/doc/SerializationReference.html,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 SerializationReference.html
*** SerializationReference.html 16 Aug 2004 19:14:53 -0000 1.1.1.1
--- SerializationReference.html 26 Aug 2004 16:41:36 -0000
***************
*** 1,6 ****
<HTML>
<HEAD>
! <META NAME="Generator" CONTENT="Corel WordPerfect 8">
<TITLE>Cheetah Serialization API Reference</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
--- 1,10 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+ <!-- index.html : entry point for POOMA tutorials -->
+ <!-- $Id: index.html,v 1.4 2004/08/23 18:46:39 pooma Exp $ -->
+
<HTML>
<HEAD>
! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Cheetah Serialization API Reference</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
*************** API Reference</H1>
*** 9,16 ****
<P>The serialization interface is all in the Cheetah namespace, and all of
the functions
are static members of:</P>
! <FONT FACE="Courier"><FONT SIZE=+1>
! <P>template<class Tag, class T> class Serialize;</FONT></FONT></P>
<P>The first template parameter is a policy template parameter. Specializing
Serialize for different tag classes defines serialization strategies.</P>
--- 13,20 ----
<P>The serialization interface is all in the Cheetah namespace, and all of
the functions
are static members of:</P>
! <FONT FACE="Courier"><FONT SIZE="+1">
! template<class Tag, class T> class Serialize;</FONT></FONT>
<P>The first template parameter is a policy template parameter. Specializing
Serialize for different tag classes defines serialization strategies.</P>
*************** Serialize for different tag classes defi
*** 21,36 ****
class T. Four functions are defined:</P>
<UL>
! <LI><font face="Courier"><font size=+1>static inline int size(const T&
item)</font></font><BR>
Calculate the size required to pack this item. The default definition just
calls
sizeof. </LI>
! <LI><font face="Courier"><font size=+1>static inline int pack(const T&
item, char *buffer)</font></font><BR>
Pack the item into the buffer. The default definition just calls the copy
constructor.</LI>
! <LI><font face="Courier"><font size=+1>static inline int unpack(T* &p,
char *buffer)</font></font><BR>
Unpack the item from the buffer by making the first argument point to it. The
default definition just assigns buffer to p.</LI>
! <LI><font face="Courier"><font size=+1>static inline void cleanup(T*
p)</font></font><BR>
Clean up an unpacked object. The default definition just calls the destructor
(not delete).</LI>
</UL>
--- 25,40 ----
class T. Four functions are defined:</P>
<UL>
! <LI><font face="Courier"><font size="+1">static inline int size(const
T& item)</font></font><BR>
Calculate the size required to pack this item. The default definition just
calls
sizeof. </LI>
! <LI><font face="Courier"><font size="+1">static inline int pack(const
T& item, char *buffer)</font></font><BR>
Pack the item into the buffer. The default definition just calls the copy
constructor.</LI>
! <LI><font face="Courier"><font size="+1">static inline int unpack(T*
&p, char *buffer)</font></font><BR>
Unpack the item from the buffer by making the first argument point to it. The
default definition just assigns buffer to p.</LI>
! <LI><font face="Courier"><font size="+1">static inline void cleanup(T*
p)</font></font><BR>
Clean up an unpacked object. The default definition just calls the destructor
(not delete).</LI>
</UL>
Index: index.html
===================================================================
RCS file: /home/pooma/Repository/cheetah/doc/index.html,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 index.html
*** index.html 16 Aug 2004 19:14:53 -0000 1.1.1.1
--- index.html 26 Aug 2004 16:41:36 -0000
***************
*** 1,6 ****
<HTML>
<HEAD>
! <META NAME="Generator" CONTENT="Corel WordPerfect 8">
<TITLE>The Advanced Computing Laboratory Cheetah Library</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
--- 1,10 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+ <!-- index.html : entry point for POOMA tutorials -->
+ <!-- $Id: index.html,v 1.4 2004/08/23 18:46:39 pooma Exp $ -->
+
<HTML>
<HEAD>
! <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>The Advanced Computing Laboratory Cheetah Library</TITLE>
</HEAD>
<BODY TEXT="#000000" LINK="#0000FF" VLINK="#551A8B" ALINK="#FF0000"
BGCOLOR="#C0C0C0">
*************** of buffers semi-automatically.</LI>
*** 53,71 ****
messaging for making sure that functions are not invoked before they have
valid data.</LI>
<LI>API Reference, in which we give a detailed function-by-function
description
! of the Cheetah API.</LI>
<UL>
<LI><A HREF="ControllerReference.html">Controller Reference</A></LI>
<LI><A HREF="ControllerImplReference.html">ControllerImpl
Reference</A></LI>
<LI><A HREF="SerializationReference.html">Serialization Reference</A></LI>
<LI><A HREF="MatchingHandlerReference.html">MatchingHandler
Reference</A></LI>
</UL>
</UL>
! <P>The Cheetah is under continuing development and maintenance. For the
! information on the current state of the library, please see <A
! HREF="http://www.acl.lanl.gov/cheetah.">http://www.acl.lanl.gov/cheetah.</A>
! <i>NOT WORKING YET!</i></P>
</BODY>
</HTML>
--- 57,76 ----
messaging for making sure that functions are not invoked before they have
valid data.</LI>
<LI>API Reference, in which we give a detailed function-by-function
description
! of the Cheetah API.
<UL>
<LI><A HREF="ControllerReference.html">Controller Reference</A></LI>
<LI><A HREF="ControllerImplReference.html">ControllerImpl
Reference</A></LI>
<LI><A HREF="SerializationReference.html">Serialization Reference</A></LI>
<LI><A HREF="MatchingHandlerReference.html">MatchingHandler
Reference</A></LI>
</UL>
+ </li>
</UL>
! <P>
! For information on Cheetah, please see
! <A HREF="http://www.pooma.com/">http://www.pooma.com/</A>.
! </P>
</BODY>
</HTML>
- Cheetah Documentation: HTML Conformance,
Jeffrey D. Oldham <=