-- File: GCDefs.mesa, Last Edit: HGM August 16, 1978 2:52 AM
-- Last Edit: Ly September 21, 1978 10:42 AM

DIRECTORY
PupDefs: FROM "PupDefs" USING [
PupAddress, PupBuffer, PupHostID, PupNetID, PupSocket];

GCDefs: DEFINITIONS =
BEGIN OPEN PupDefs;

maxInform: CARDINAL = 5;

GCInterface: TYPE = POINTER TO GCVector;
GCVector: TYPE = RECORD [
remHost: PupAddress,
myHost: PupHostID,
myNet: PupNetID,
gcSoc: PupSocket,
stopFlag: BOOLEAN,
newPartner: ARRAY [1..maxInform] OF BOOLEAN
];

-- In GCMisc
SetDisplay: PROCEDURE;
SetHost: PROCEDURE;
FixHostAndNet: PROCEDURE;
YesOrNo: PROCEDURE[s: STRING] RETURNS[b: BOOLEAN];
WaitUntilKeyHit: PROCEDURE;
Read: PROCEDURE [p: POINTER] RETURNS [x: UNSPECIFIED];
Get: PROCEDURE [to, from: POINTER, size: CARDINAL];
Put: PROCEDURE [to, from: POINTER, size: CARDINAL];
GetFailure, PutFailure: SIGNAL;

-- In GCCommand
GateControlMainLoop: PROCEDURE;

-- In GCEcho
GCEchoer: PROCEDURE;
ToggleEchoServer: PROCEDURE;

-- In GCLook
GCLookAtThings: PROCEDURE;

-- In GCPR
GCPRThings: PROCEDURE;

-- In GCPrint
GCPrintThings: PROCEDURE;
PrintErrorPup: PROCEDURE [PupBuffer];
PrintPupAddress: PROCEDURE [POINTER TO PupAddress];

-- In GCStats
GetStats: PROCEDURE;

GCCommand, GCEcho, GCLook, GCMisc: PROGRAM[GCInterface];
GCPR, GCPrint, GCStats: PROGRAM[GCInterface];

END.