Files
sics/doc/programmer/ruli.tex
2000-02-07 10:38:55 +00:00

46 lines
2.1 KiB
TeX

\subsection{The R\"unlist}
The R\"unlist is part of the LNS R\"unbuffer system. It is a stack of
r\"unbuffers. When started, the last r\"unbuffer of the stack is executed.
While this is happening it is
possible to modify, delete and add r\"unbuffers to the stack.
The R\"unlist is characterized by the following data structure:
\begin{verbatim}
typedef struct {
pObjectDescriptor pDes;
int iList;
} RuenStack, *pRuenStack;
\end{verbatim}
The fields are:
\begin{description}
\item[pDes] A pointer to the usual SICS object descriptor.
\item[iList] A lld--list of r\"unbuffers.
\end{description}
Interaction with the R\"unlist happens through the interface functions given
below. If not stated otherwise functions return 1 on success, 0 on failure.
Most functions take as first parameter a pointer to a r\"unlist structure.
\begin{description}
\item[pRuenStack CreateRuenStack(void)] creates a new r\"unlist. Returns the
pointer to a new r\"unlist structure on success, NULL on failure.
\item[void DeleteRuenStack(void *self)] deletes a r\"unlist.
\item[int RuenStackAdd(pRuenStack self,pRuenBuffer pVictim)] puts
r\"unbuffer pVictim on top of the r|'unlist.
\item[int RuenStackUnlink(pRuenStack self, int iLine)] removes r\"unbuffer
number iLine from the r\"unlist. This command does NOT delete the
r\"unbuffer.
\item[int RuenStackInsert(pRuenStack self, int iLine, pRuenBuffer pVictim)]
inserts r\"unbuffer pVictim after line iLine into the r\"unlist.
\item[int RuenStackList(pRuenStack self, SConnection *pCon)] list the
contents of the r\"unlist onto the connection pCon.
\item[int RuenStackRun(pRuenStack self,SConnection *pCon, SicsInterp
*pSics)] executes the r\"unlist. Ends when the r\"unlist is empty.
\item[int RuenStackBatch(pRuenStack self,SConnection *pCon, SicsInterp
*pSics)] executes the r\"unlist. If the list is empty RuenStackBatch
continues and checks for new r\"unbuffers being added to the list.
\item[int RuenStackAction(SConnection *pCon, SicsInterp *pSics, void *pData,\\
int argc, char *argv[])] The object wrapper function
for the R\"unlist.
\end{description}