3/31/2008
--------------------
Program LoggerWindow v0.1
--------------------
LoggerWindow is a program to provide a logging window for multiple clients.
It opens a console window and an Amiga named pipe. It monitors the named
pipe and
displays whatever text arrives through the pipe onto the window.
Use from the shell: RUN LoggerWindow MyLoggerName
Multiple writers can display their logging information by writing to, or
redirecting a standard output to PIPE:MyLoggerName. e.g.,
DATE > PIPE:MyLoggerName
Modula-2 programs can use LoggerDefs.WriteLoggerString().
LoggerWindow also implements the "special text" commands:
$QUIT$ for ending the LoggerWindow program. e.g.,
ECHO $QUIT$ > PIPE:MyLoggerName
$FRONT$, $POS$x$y$, $SIZ$x$y$, $CLR$ for control of the display window.
See Loggerdefs.def for more information.
A0S4 support only.
-----------------
Module LoggerDefs v1.3
-----------------
M2 Module to provide support for a logging program.
The logging channel is implemented by a named Amiga pipe.
Use: Open the logging reader: Reader := OpenLogger()
ObtainLoggerPipe(Reader, LoggerRead, "MyName",
...)
REPEAT
Open a logging writer:
Writer := OpenLogger();
ObtainLoggerPipe(Writer, LoggerWrite, "MyName", ...)
Do the desired logging:
WriteLoggerString(Writer, "string to be logged")
...
ReadLoggerLine(Reader, ...)
Close a logging writer:
CloseLogger(Writer)
UNTIL finished
Close the logging reader:
CloseLogger(Writer)
Note: Because Amiga named pipes are system-wide, the reader and writer do not
have to be in the same process.
A special text sequence, "$QUIT$" should be written in order to tell the
reading logger to shut down.
A set of text based commands is defined for use when the reading logger is
displaying the incoming text in an Amiga window: e.g.,
$FRONT$ - move the logging window to the front.
$POS$x$y$ - position the LeftEdge and TopEdge of the logging window.
$SIZE$w$h$ - set the Width and Height of the logging window.
$CLR - clear the logging window.
Note: This module does not implement any of the commands, it just provides
support for easily writing one of the commands, and for the reader to easily
test for an incoming command.
-------------
Module PipeIO v0.2
-------------
M2 Module for support in using Amiga Pipes.
Currently, Reads and Writes are handled synchronously. Reads will block
until data is available.
You open a Pipe either as a reader or a writer. Expected use is as follows:
Open a Reader
LOOP
Open one or more Writers
Do the writing
Close the Writer(s)
END
Close the Reader
Other permutations may work or may cause trouble.
If the last Reader closes and there is unread data in the pipe there may be
trouble. At the least, the named pipe will become unusable until OS reboot.
| |