Guardian Programmer's Guide

Table Of Contents
Communicating With Processes
Guardian Programmer’s Guide 421922-014
6 - 53
Programming the Server
?INSPECT,SYMBOLS,NOMAP,NOCODE
?NOLIST,SOURCE $SYSTEM.ZSYSDEFS.ZSYSTAL
?LIST
LITERAL MAXFLEN = ZSYS^VAL^LEN^FILENAME; !Maximum file-name
! length
LITERAL OLD = 0; !updating in ENTER^REC
LITERAL NEW = 1; !new record in ENTER^REC
LITERAL BUFSIZE = 132; !size of terminal buffer
LITERAL PARTSIZE= 6; !size of part number
LITERAL DESCSIZE= 60; !size of part description
LITERAL SUPPSIZE= 60; !size of supplier name
LITERAL READ^APPROX= 1; !function values:
LITERAL READ^EXACT = 2;
LITERAL WRITE^ONE = 3;
LITERAL UPDATE^ONE = 4;
LITERAL READ^NEXT = 5;
STRING .SBUFFER[0:BUFSIZE]; !I/O buffer (one extra char)
STRING .S^PTR; !pointer to end of string
INT PARTFILE^NUM; !part file number
INT TERMNUM; !terminal file number
INT RECV^NUM; !$RECEIVE file number
INT REPLY^ERROR; !error returned to requester
!Structure for part records:
STRUCT .PART^RECORD;
BEGIN
STRING PART^NUMBER[0:PARTSIZE-1];
STRING DESCRIPTION[0:DESCSIZE-1];
INT DESC^LEN;
STRING SUPPLIER[0:SUPPSIZE-1];
INT SUP^LEN;
INT ON^HAND;
INT UNIT^PRICE;
END;
!Structure for messages received from requester:
STRUCT .REQUEST;
BEGIN
INT REQUEST^FUNCTION;
STRUCT PART(PART^RECORD);
STRUCT OLD^PART(PART^RECORD);
END;