Guardian Programmer's Guide

Table Of Contents
Communicating With Processes
Guardian Programmer’s Guide 421922-014
6 - 34
Programming the Requester
?INSPECT, SYMBOLS, 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; !requester function
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 SERVER^NUM; !server file number
INT TERMNUM; !terminal file number
!Data structure for receiving part records from the server
!process:
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;
!Data structure for sending a request to the server:
STRUCT .REQUEST;
BEGIN
INT REQUEST^FUNCTION;
STRUCT PART(PART^RECORD);
STRUCT OLD^PART(PART^RECORD);
END;