Guardian Programmer's Guide

Table Of Contents
Communicating With Processes
Guardian Programmer’s Guide 421922-014
6 - 61
Programming the Server
!------------------------------------------------------------
! This procedure does the initialization for the program.
! It calls INITIALIZER to dispose of the startup messages.
! It opens the home terminal and the data file used by the
! program.
!------------------------------------------------------------
PROC INIT;
BEGIN
STRING .PARTFILE^NAME[0:MAXFLEN - 1]; !name of part file
INT PARTFILE^LEN; !length of part-file
! name
STRING .TERMNAME[0:MAXFLEN - 1]; !terminal file
INT TERMLEN; !length of terminal-
! file name
STRING .RECV^NAME[0:MAXFLEN - 1]; !$RECEIVE file name
INT RECVLEN; !length of string
INT OPTIONS; !for FILE_OPEN_
! procedure
INT RECV^DEPTH; !for $RECEIVE
INT SYNCH^DEPTH; !for data file
INT ERROR;
! Read and discard startup messages.
CALL INITIALIZER;
! Open the terminal file. For simplicity we use the home
! terminal; the recommended approach is to use the IN file
! read from the Startup message; see Section 8 for
! details:
CALL PROCESS_GETINFO_(!process^handle!,
!file^name:maxlen!,
!file^name^len!,
!priority!,
!moms^processhandle!,
TERMNAME:MAXFLEN,
TERMLEN);
ERROR := FILE_OPEN_(TERMNAME:TERMLEN,TERMNUM);
IF ERROR <> 0 THEN CALL PROCESS_STOP_;
! Open $RECEIVE with a receive depth of 1 and to reject
! system messages:
RECV^NAME ':=' "$RECEIVE" -> @S^PTR;
RECVLEN := @S^PTR '-' @RECV^NAME;
OPTIONS := %B0000000000000001;
RECV^DEPTH := 1;