summaryrefslogtreecommitdiff
path: root/comm/doc.main
diff options
context:
space:
mode:
Diffstat (limited to 'comm/doc.main')
-rw-r--r--comm/doc.main115
1 files changed, 58 insertions, 57 deletions
diff --git a/comm/doc.main b/comm/doc.main
index 400d6be..b77b08c 100644
--- a/comm/doc.main
+++ b/comm/doc.main
@@ -1,15 +1,16 @@
%
-% The Unix Channel
+% Ivy League
%
-% by Michel Beaudouin-Lafon
+% Programmer's Manual main file - to be updated
%
-% Copyright 1990-1993
+% Copyright 1990-2000
% Laboratoire de Recherche en Informatique (LRI)
+% Centre d'Etudes de la Navigation Aerienne (CENA)
%
-% User's Manual main file - to be updated
+% written by Michel Beaudouin-Lafon and Stephane Chatty
%
% $Id$
-% $CurLog$
+%
%
\documentstyle[11pt,mydoc,twoside]{doc}
@@ -18,7 +19,7 @@
\makeindex
\namedoc{Unix Channel}
-\def\uch{{\sc Uch}}
+\def\uch{{\sc Ivl}}
\begin{document}
\maketitle
@@ -89,17 +90,17 @@ allocated dynamically (with \fun{operator new}), it is automatically destroyed.
\item
\samepage
- {the archive files \com{libUch.a} and \com{libChan.a}, which are usually installed in \com{/usr/lib}
+ {the archive files \com{libIvl.a} and \com{libChan.a}, which are usually installed in \com{/usr/lib}
or in \com{/usr/loc\-al/lib}, contain the library procedures. One of these libraries must be loaded
with the object files which use \uch. This is usually performed
- by adding the flag \com{-lUch} or \com{-lChan} in the command line for your C++ compiler.
+ by adding the flag \com{-lIvl} or \com{-lChan} in the command line for your C++ compiler.
\uch\ uses the utilities library, so \com{libutils++.a} must be included when loading an application.
- \com{libUch.a} contain the object files for the whole library, while \com{libChan.a}
+ \com{libIvl.a} contain the object files for the whole library, while \com{libChan.a}
contains only the object files for the classes described in chapter \ref{General io},
corresponding to the header file \com{chan.h}.
For instance, you can type~:
\begin{center}
- \com{CC -o demo main.C -lUch -lCcu}
+ \com{CC -o demo main.C -lIvl -lCcu}
\end{center}}
\end{enumerate}
@@ -114,8 +115,8 @@ Unix input/output is byte oriented: byte buffers can be read and written in file
with the system calls \fun{read} and \fun{write}.
\uch\ implements message oriented input/output,
although byte io can be used if needed.
-The class \typ{UchMessage} is the abstract base class for the messages
-to be exchanged between applications. A \typ{UchMessage} only needs to
+The class \typ{IvlMessage} is the abstract base class for the messages
+to be exchanged between applications. A \typ{IvlMessage} only needs to
know how to convert itself to and from a set of bytes in a \typ{MsgBuffer}.
The class \typ{MsgBuffer} is used throughout \uch\ to buffer input and output.
Buffering output can dramatically improve performances (especially if the
@@ -130,12 +131,12 @@ The following types are defined for machine independent handling of data:
\item The type \typ {^{lword}} refers to a 32-bit quantity.
\end{itemize}.
-The class \typ{UchFilDes} encapsulates the Unix notion of file descriptor.
-The class \typ{UchChannel} derives from \typ{UchFilDes}, adding virtual functions
+The class \typ{IvlFd} encapsulates the Unix notion of file descriptor.
+The class \typ{IvlChannel} derives from \typ{IvlFd}, adding virtual functions
for implementing multiplexing and communication protocols.
-The class \typ{UchMultiplexer} implements a set of channels for multiplexing
+The class \typ{IvlMultiplexer} implements a set of channels for multiplexing
input and output.
-The class \typ{UchIOS} is a base class for input/output streams: message buffers,
+The class \typ{IvlIOS} is a base class for input/output streams: message buffers,
channels, etc.
These classes are not sufficient to write distributed applications because
@@ -151,29 +152,29 @@ The emission of messages works in a similar way: the contents of a message are
copied to a buffer before being sent.
\subsection{Messages}
-#iclass UchMessage
+#iclass IvlMessage
\subsection{Buffers}
-#iclass UchMsgBuffer
+#iclass IvlMsgBuffer
\section{Files and channels}
-#iclass UchFilDes
-#iclass UchChannel
+#iclass IvlFd
+#iclass IvlChannel
\section{Base IO streams}
-#iclass UchIOS
+#iclass IvlIOS
\section{Multiplexing channels}
-#iclass UchBaseMultiplexer
-#iclass UchMultiplexer
+#iclass IvlBaseMultiplexer
+#iclass IvlMultiplexer
\subsection{Adding timers}
-#iclass UchBaseTimeOut
-#iclass UchTimeOut
+#iclass IvlBaseTimeOut
+#iclass IvlTimeOut
\subsection{Safe signal handling}
-#iclass UchBaseSignalHandler
-#iclass UchSignalHandler
+#iclass IvlBaseSignalHandler
+#iclass IvlSignalHandler
\section{Example}
\label{General io example}.
@@ -203,11 +204,11 @@ the system, so that a distant process cannot know this port number to
establish the communication.
The port server described in chapter \ref{Portserv} overcomes this problem.
It is often used to create internet addresses from logical names,
-instead of the class \typ{UchInetAddress} described in this chapter.
+instead of the class \typ{IvlInetAddress} described in this chapter.
-#class UchAddress
-#class UchUnixAddress
-#class UchInetAddress
+#class IvlAddress
+#class IvlUnixAddress
+#class IvlInetAddress
\chapter{Basic communications}
@@ -216,13 +217,13 @@ instead of the class \typ{UchInetAddress} described in this chapter.
This chapter describes the main classes for developing distributed applications.
The communication between the processes is done by using Unix sockets.
-The class \typ{UchSocket} encapsulates such sockets, but it is an abstract base class.
-The classes \typ{UchDatagram} and \typ{UchStream} implement the two main
+The class \typ{IvlSocket} encapsulates such sockets, but it is an abstract base class.
+The classes \typ{IvlDatagram} and \typ{IvlStream} implement the two main
protocols available under Unix, i.e. datagrams and streams.
These protocols differ in the way the connection can be established and the way
the data is transmitted between the processes.
In particular, streams transfer bytes and do not know about messages.
-The class \typ{UchMsgStream} extends the stream protocol to transfer messages
+The class \typ{IvlMsgStream} extends the stream protocol to transfer messages
and not bytes.
This is the class that will be used most of the time to build distributed applications,
as illustrated in section \ref{Basics example}
@@ -234,11 +235,11 @@ in this chapter. All derivations are public. This means that the member function
of a base class are available in its derived classes, although they appear in the
documentation only for the base class.
-#class UchSocket
-#class UchDatagram
-#class UchStream
-#class UchMsgStream
-#class UchDGRAM
+#class IvlSocket
+#class IvlDatagram
+#class IvlStream
+#class IvlMsgStream
+#class IvlDGRAM
\section{Example}
\label{Basics example}
@@ -249,17 +250,17 @@ documentation only for the base class.
%--------------------------------
\label{Servers}
-This chapter describes the classes \typ{UchServer} and \typ{UchClient} to be used
+This chapter describes the classes \typ{IvlServer} and \typ{IvlClient} to be used
to implement a server.
A server is a process that accepts connections from several clients,
and processes their requests.
-When implementing a server, there is one object of class \typ{UchServer},
-and one object of class \typ{UchClient} for each connected client.
-Each such \typ{UchClient} object is connected to another process where
+When implementing a server, there is one object of class \typ{IvlServer},
+and one object of class \typ{IvlClient} for each connected client.
+Each such \typ{IvlClient} object is connected to another process where
a corresponding \typ{Service} object exists (see figure \ref{fig:clientserver}).
We call these processes the clients of the server:
-a \typ{UchClient} represents a connected client in the server,
+a \typ{IvlClient} represents a connected client in the server,
while a \typ{Service} represents the server in a client.
\fig{FIGURES/clientserver}{Objects in a client-server system}
@@ -271,16 +272,16 @@ class \typ{MsgStream}.
The class \typ{Service} and the associated classes for managing
events are described in chapter \ref{Clients}.
-#class UchServer
-#class UchClient
+#class IvlServer
+#class IvlClient
\chapter{Clients}
\label{Clients}
-An object of a class derived from \typ{UchMsgStream} must exist in a client process to communicate
-with its server (implemented by an object of class \typ{UchClient} in the server process).
+An object of a class derived from \typ{IvlMsgStream} must exist in a client process to communicate
+with its server (implemented by an object of class \typ{IvlClient} in the server process).
-The class \typ{UchService} described here can be used when the protocol between the
+The class \typ{IvlService} described here can be used when the protocol between the
server and its clients is of the event/request type.
\fig{FIGURES/evreq}{Event / request protocol model.}
@@ -298,19 +299,19 @@ usually the client reads an event in its top-level loop, and responds to it;
this may involve sending requests to the server, that in turn will generate events.
A single client may want to be connected to several servers.
-The class \typ{UchService} makes this possible by allowing to share an event queue
+The class \typ{IvlService} makes this possible by allowing to share an event queue
between several services.
Thus incoming events are multiplexed, and the top level loop of the client is of the
same form as above.
Each event contains the server that sent it so that it can be easily dispatched by the client.
Events are messages. They are implemented by the virtual base class \typ{EventMsg}.
-The event queue of a service is implemented by the class \typ{UchEvtMsgQueue}.
+The event queue of a service is implemented by the class \typ{IvlEvtMsgQueue}.
-#class UchService
-#class UchEventMsg
-#class UchGenEvtMsg
-#class UchEvtMsgQueue
+#class IvlService
+#class IvlEventMsg
+#class IvlGenEvtMsg
+#class IvlEvtMsgQueue
\chapter{Port registration server}
\label{Portserv}
@@ -351,7 +352,7 @@ If \var{savetime} is specified, it determines how many seconds after a modificat
the new state is saved. If it is not specified, the state is saved immediately after each modification.
The save time is intended for port servers that are heavily used in order to reduce file accesses.
-#class UchPortServer
+#class IvlPortServer
\section{Testing the port server}
@@ -394,7 +395,7 @@ The different commands are the following:
[to be done]
\chapter{Error management}
-#iclass UchError
+#iclass IvlError
\newpage