BluejaySmarts.mesa
Initial skeleton Implementation for Bluejay Smarts
Last modified by D. Swinehart, November 29, 1984 1:50:21 pm PST
DIRECTORY
Jukebox  USING [ Handle],
PupDefs  USING [ PupSocket ],
Rope   USING [ ROPE ],
Thrush  USING [ ConversationHandle, IntervalSpec, nullConvHandle, PartyHandle, SHHH, SmartsHandle ],
ThSmarts,
ThSmartsPrivate USING [ ConvDesc, OpenConversations ],
VoiceStream USING [ Handle ]
;
BluejaySmarts: CEDAR DEFINITIONS = {
jayShh: Thrush.SHHH;
interfaceIsImported: BOOLEAN;
encryptionRequested: BOOLEAN;
JayInfo: TYPE = REF JayInfoBody;
JayInfoBody: TYPE = RECORD [
smartsID: Thrush.SmartsHandle,
partyID: Thrush.PartyHandle,
shh: Thrush.SHHH,
socket: PupDefs.PupSocket←NIL,
stream: VoiceStream.Handle←NIL,
thProcess: PROCESSNIL,
thAction: CONDITION,
apprise: BOOLFALSE,
lastIntervalSpec: Thrush.IntervalSpec←NIL, -- a kludge! Need to save for ReportDone.
conversations: ThSmartsPrivate.OpenConversations ← NIL,
currentConvID: Thrush.ConversationHandle ← Thrush.nullConvHandle
];
infos: ARRAY[0..100) OF JayInfo;
smartses: ARRAY[0..100) OF Thrush.SmartsHandle;
numParties: NAT;
haveJuke: BOOL;
handle: Jukebox.Handle;
BluejayRegister: PROC[bluejayInstance, thrushInstance, serverPassword: Rope.ROPE]
RETURNS[partyID: Thrush.PartyHandle, smartsID: Thrush.SmartsHandle];
}.