From ad474ebe5ac3ff545af41a96786bbf4829aeec8d Mon Sep 17 00:00:00 2001 From: chatty Date: Mon, 29 Nov 1993 12:27:12 +0000 Subject: Minor patches --- comm/doc.main | 61 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 14 deletions(-) (limited to 'comm/doc.main') diff --git a/comm/doc.main b/comm/doc.main index 44abcd4..9a50c97 100644 --- a/comm/doc.main +++ b/comm/doc.main @@ -12,9 +12,19 @@ % $CurLog$ % +\documentstyle[11pt,mydoc,twoside]{doc} + +\pagestyle{ENTETE} +\makeindex + \namedoc{Unix Channel} \def\uch{{\sc Uch}} +\begin{document} +\maketitle +\cleardoublepage +\tableofcontents + \chapter{Introduction} %-------------------------------- @@ -95,10 +105,6 @@ allocated dynamically (with \fun{operator new}), it is automatically destroyed. \end{enumerate} -\chapter{Error management} - -#iclass UchError - \chapter{General io} \label{General io} @@ -108,8 +114,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{Message} is the abstract base class for the messages -to be exchanged between applications. A \typ{Message} only needs to +The class \typ{UchMessage} is the abstract base class for the messages +to be exchanged between applications. A \typ{UchMessage} 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 @@ -135,11 +141,34 @@ there is no way to establish a communication between two processes. However they can be used for traditional input/output to terminals and files. This is illustrated in section \ref{General io example}. -#class UchMessage -#class UchMsgBuffer -#class UchFilDes -#class UchChannel -#class UchMultiplexer +\section{Messages} +The basic entities used to transfer information are messages and buffers. Low level +mechanisms ensure the transmission of data and store it in a buffer. That raw data +is then extracted from the buffer, and used to initialize the fields of a message. +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 + +\subsection{Buffers} +#iclass UchMsgBuffer + +\section{Files and channels} +#iclass UchFilDes +#iclass UchChannel + +\section{Multiplexing channels} +#iclass UchBaseMultiplexer +#iclass UchMultiplexer + +\subsection{Adding timers} +#iclass UchBaseTimeOut +#iclass UchTimeOut + +\subsection{Safe signal handling} +#iclass UchBaseSignalHandler +#iclass UchSignalHandler \section{Example} \label{General io example}. @@ -193,7 +222,7 @@ 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} -\fig{socketclasses}{Hierarchy of classes} +\fig{FIGURES/socketclasses}{Hierarchy of classes} Figure \ref{fig:socketclasses} shows the derivation tree for the classes described in this chapter. All derivations are public. This means that the member functions @@ -228,7 +257,7 @@ We call these processes the clients of the server: a \typ{UchClient} represents a connected client in the server, while a \typ{Service} represents the server in a client. -\fig{clientserver}{Objects in a client-server system} +\fig{FIGURES/clientserver}{Objects in a client-server system} The class \typ{Service} is useful only if your application follows an event/request protocol. @@ -249,7 +278,7 @@ with its server (implemented by an object of class \typ{UchClient} in the server The class \typ{UchService} described here can be used when the protocol between the server and its clients is of the event/request type. -\fig{evreq}{Event / request protocol model.} +\fig{FIGURES/evreq}{Event / request protocol model.} In the event/request model (see figure \ref{fig:evreq}), a client communicates with a server by sending requests. @@ -359,6 +388,10 @@ The different commands are the following: [to be done] +\chapter{Error management} +#iclass UchError + + \newpage \appendix -- cgit v1.1