Guardian Programmer's Guide

Table Of Contents
Communicating With Processes
Guardian Programmer’s Guide 421922-014
6 - 58
Programming the Server
!------------------------------------------------------------
! This procedure reads one record from the data file.
! It is invoked in response to a READ^EXACT request issued by
! a requester process, as the first phase of a record update.
!------------------------------------------------------------
PROC READ^EXACT^RECORD;
BEGIN
INT COUNT^READ;
INT ERROR;
! Position exactly to the selected record:
CALL KEYPOSITION(PARTFILE^NUM,
REQUEST.PART.PART^NUMBER,
!key^specifier!,
!length^word!,
2);
IF <> THEN CALL FILE^ERRORS(PARTFILE^NUM);
! Read the selected record:
CALL READX(PARTFILE^NUM,PART^RECORD,$LEN(PART^RECORD));
IF <> THEN
BEGIN
CALL FILE_GETINFO_(PARTFILE^NUM,REPLY^ERROR);
RETURN;
END;
REPLY^ERROR := 0;
END;
!------------------------------------------------------------
! Procedure to insert a new record into the data file.
!------------------------------------------------------------
PROC WRITE^RECORD;
BEGIN
CALL WRITEX(PARTFILE^NUM,REQUEST.PART,$LEN(PART^RECORD));
IF <> THEN
BEGIN
CALL FILE_GETINFO_(PARTFILE^NUM,REPLY^ERROR);
RETURN;
END;
REPLY^ERROR := 0;
END;