BluejaySmarts.mesa
Initial skeleton Implementation for Bluejay Smarts
Last modified by D. Swinehart, August 4, 1984 6:46:20 pm PDT
DIRECTORY
Jukebox USING [ Handle],
PupDefs USING [ PupSocket ],
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: PROCESS←NIL,
thAction: CONDITION,
apprise: BOOL←FALSE,
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 RETURNS[partyID: Thrush.PartyHandle, smartsID: Thrush.SmartsHandle];
}.