freepooma-devel
[Top][All Lists]
Advanced

[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 &amp;argc, char
  **&amp;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 &amp;argc, char
  **&amp;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 
&amp;argc, char **&amp;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 
&amp;argc, char **&amp;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&lt;class T1&gt;<BR>
  inline void send(int to, int tag, const T1&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class T1, class T2&gt;<BR>
  inline void send(int to, int tag, const T1&amp;, const 
T2&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class T1, class T2, class 
T3&gt;<BR>
  inline void send(int to, int tag, const T1&amp;, const T2&amp;,
  const T3&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class T1, class T2, class 
T3, class T4&gt;<BR>
  inline void send(int to, int tag, const T1&amp;, const T2&amp;,
  const T3&amp;, const T4&amp;)</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&lt;class T1&gt;<BR>
  inline void send(int to, int tag, const T1&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class T1, class T2&gt;<BR>
  inline void send(int to, int tag, const T1&amp;, const 
T2&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class T1, class T2, class 
T3&gt;<BR>
  inline void send(int to, int tag, const T1&amp;, const T2&amp;,
  const T3&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class T1, class T2, class 
T3, class T4&gt;<BR>
  inline void send(int to, int tag, const T1&amp;, const T2&amp;,
  const T3&amp;, const T4&amp;)</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&lt;class SerializeTag&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int toContext,
  int matchingTag)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class SerializeTag, class 
T1&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int to, int
  tag, const T1&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class SerializeTag, class 
T1, class T2&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int to, int
  tag, const T1&amp;, const T2&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class SerializeTag, class 
T1, class T2, class T3&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int to, int
  tag, const T1&amp;, const T2&amp;, const T3&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class SerializeTag, class 
T1, class T2, class
  T3, class T4&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int to, int
  tag, const T1&amp;, const T2&amp;, const T3&amp;, const 
T4&amp;)</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&lt;class SerializeTag&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int toContext,
  int matchingTag)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class SerializeTag, class 
T1&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int to, int
  tag, const T1&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class SerializeTag, class 
T1, class T2&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int to, int
  tag, const T1&amp;, const T2&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class SerializeTag, class 
T1, class T2, class T3&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int to, int
  tag, const T1&amp;, const T2&amp;, const T3&amp;)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class SerializeTag, class 
T1, class T2, class
  T3, class T4&gt;<BR>
  inline void sendWith(const SerializeTag&amp;, int to, int
  tag, const T1&amp;, const T2&amp;, const T3&amp;, const 
T4&amp;)</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&lt;class Ret&gt;<BR>
  inline void request(int fromContext, int matchingTag,
  Ret (*handler)())</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1&gt;<BR>
  inline void request(int from, int tag, Ret
  (*handler)(T1))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2&gt;<BR>
  inline void request(int from, int tag, Ret
  (*handler)(T1,T2))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2, class T3&gt;<BR>
  inline void request(int from, int tag, Ret
  (*handler)(T1,T2,T3))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2, class T3, class T4&gt;<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&lt;class Ret&gt;<BR>
  inline void request(int fromContext, int matchingTag,
  Ret (*handler)())</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class 
T1&gt;<BR>
  inline void request(int from, int tag, Ret
  (*handler)(T1))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2&gt;<BR>
  inline void request(int from, int tag, Ret
  (*handler)(T1,T2))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2, class T3&gt;<BR>
  inline void request(int from, int tag, Ret
  (*handler)(T1,T2,T3))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2, class T3, class T4&gt;<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&lt;class Ret, class T1, class 
T&gt;<BR>
  inline void request(int from, int tag, Ret
  (*handler)(T1), T* obj)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2, class T&gt;<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&lt;class Ret, class T1, class 
T2, class T3, class T&gt;<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&lt;class Ret, class T1, class 
T2, class T3, class
  T4, class T&gt;<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&lt;class Ret, class T1, 
class T&gt;<BR>
  inline void request(int from, int tag, Ret
  (*handler)(T1), T* obj)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2, class T&gt;<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&lt;class Ret, class T1, 
class T2, class T3, class T&gt;<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&lt;class Ret, class T1, 
class T2, class T3, class
  T4, class T&gt;<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&lt;class SerializeTag, class 
Ret&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int fromContext,
  int matchingTag, Ret (*handler)())</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2, class T3&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2,T3))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2, class T3, class T4&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2,T3,T4))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1), T* obj)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2, class T&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2), T* obj)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2, class T3, class T&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2,T3), T* obj)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE=+1>template&lt;class Ret, class T1, class 
T2, class T3, class
  T4, class T&gt;<BR>
  inline void requestWith(SerializeTag&amp;, 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&lt;class SerializeTag, class 
Ret&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int fromContext,
  int matchingTag, Ret (*handler)())</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class 
T1&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2, class T3&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2,T3))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2, class T3, class T4&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2,T3,T4))</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1), T* obj)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2, class T&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2), T* obj)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2, class T3, class T&gt;<BR>
  inline void requestWith(SerializeTag&amp;, int from, int
  tag, Ret (*handler)(T1,T2,T3), T* obj)</FONT></FONT></P>
  
! <P><FONT FACE="Courier"><FONT SIZE="+1">template&lt;class Ret, class T1, 
class T2, class T3, class
  T4, class T&gt;<BR>
  inline void requestWith(SerializeTag&amp;, 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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&lt;class Tag, class T&gt; 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&lt;class Tag, class T&gt; 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&amp; 
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&amp; 
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* &amp;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&amp; 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&amp; 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* 
&amp;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>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]