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: 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[bluejayInstance, thrushInstance, serverPassword: Rope.
ROPE]
RETURNS[partyID: Thrush.PartyHandle, smartsID: Thrush.SmartsHandle];
}.