Guardian Programmer's Guide

Table Of Contents
Writing a Command-Interpreter Monitor ($CMON)
Guardian Programmer’s Guide 421922-014
23 - 85
Sample Command-Interface Program
! Create process:
ERROR := PROCESS_CREATE_(
CMON^OBJECT^NAME:OBJFILE^NAMELEN,
!library^file:length!,
!swap^file:length!,
!ext^swap^file:length!,
!priority!,
!processor!,
!process^handle!,
!error^detail!,
ZSYS^VAL^PCREATOPT^NAMEINCALL,
PROCESS^NAME:PROCESS^NAMELEN);
IF ERROR <> 0 THEN
BEGIN
PRINT^STR("Unable to create $CMON");
CALL PROCESS_STOP_;
END;
! Open the new $CMON process:
CALL OPEN^CMON(PROCESS^NAME,PROCESS^NAMELEN,
CMON^NUM);
! Send $CMON a Startup message:
CI^STARTUP.MSGCODE := -1;
CALL WRITEX(CMON^NUM,CI^STARTUP,MESSAGE^LEN);
IF <> THEN
BEGIN
CALL FILE_GETINFO_(CMON^NUM,ERROR);
IF ERROR <> 70 THEN
PRINT^STR("Could not write Start-Up " &
"message to server ");
END;
! Close $CMON:
ERROR := FILE_CLOSE_(CMON^NUM);
! Reopen $CMON:
CALL OPEN^CMON(PROCESS^NAME,PROCESS^NAMELEN,
CMON^NUM);
END;
OTHERWISE -> BEGIN
! Unexpected error return from PROCESS_GETPAIRINFO_:
PRINT^STR("Unexpected error ");
END;
END;
END;