Short: A logging window for multiple clients. Author: Tom Breeden Uploader: "Tom Breeden" Type: util/cli Version: 0.1 Requires: AOS 4 July release Architecture: ppc-amigaos >= 4.0.5 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.