ThSmarts.mesa
Copyright Ó 1987, 1992 by Xerox Corporation. All rights reserved.
Last modified by Swinehart, August 9, 1987 4:50:30 pm PDT
DIRECTORY Thrush USING [ ActionReport, ConvEvent, Credentials, PartyID, Reason, ROPE, SHHH, unencrypted ];
ThSmarts: CEDAR DEFINITIONS = {
Party=>Smarts communication is entirely advisory, and entirely through calls on Progress. This is further described in the ThParty implementations.
Progress: PROC[
Called by Party to report changes in connection status either in response to an Alert from self or due to various other call progress events, including the initiation or termination of a connection.
shh: Thrush.SHHH¬Thrush.unencrypted,
convEvent: Thrush.ConvEvent
];
ReportAction: PROC[
shh: Thrush.SHHH¬Thrush.unencrypted,
report: Thrush.ActionReport
];
This is how a service action report reaches its recipients. See ThParty.ReportAction, and discussion at definition of Thrush.ActionReport.
Substitution: PROC[
Called by Party to report a replacement of one party by another as a participant in a conversation. This happens when an $individual party registers or deregisters as a Poacher.
It provides the same information as usual, but also indicates what the substitution was.
shh: Thrush.SHHH¬Thrush.unencrypted,
convEvent: Thrush.ConvEvent,
oldPartyID: Thrush.PartyID,
newPartyID: Thrush.PartyID
];
CheckIn: PROC[
Called just after registration, just before dissolution of the connection (if it is thought that communication is still possible), and possibly at intervals while the Smarts is registered. Credentials are those of this Smarts and its immediate Party.
reason:
$welcome -- issued just after smarts has registered with party.
$hello -- just checking.
$trylater -- issued just before the connection is dissolved; automatic attempts to reconnect after the nextScheduledCheck interval has expired not discouraged.
$goodbye -- issued just before the connection is dissolved; automatic reconnection discouraged, since there is evidence that the user has moved to a different location.
$pleasedisconnect -- request to disconnect, but it's ok to try a reconnect after the nextScheduledCheck interval.
$pleasesaygoodbye -- Requests a permanent disconnect, probably because the server version is changing.
remark: just that, used to further explain $goodbye or $trylater.
nextScheduledCheck:
If not noneScheduled, the number of seconds until another check should be expected. Smarts should take some action (for example, call ThParty.CheckIn) before concluding that the Party's server is no longer listening, since this time estimate could be wrong.
shh: Thrush.SHHH¬Thrush.unencrypted,
credentials: Thrush.Credentials,
voicePath: BOOL ¬ TRUE, -- A voice path is available
reason: Thrush.Reason,
remark: Thrush.ROPE¬NIL,
nextScheduledCheck: INT ¬ noneScheduled
];
noneScheduled: INT = LAST[INT];
}.
Swinehart, August 9, 1987 3:22:45 pm PDT
Add remark field to CheckIn[].
changes to: DIRECTORY