-- Transport mechanism: Maintain: internal interface
-- [Juniper]<Grapevine>Maintain>MaintainPrivate.mesa
-- Andrew Birrell 14-Jan-82 9:37:23
DIRECTORY
BodyDefs USING[ Connect, Password, RName, Remark ],
GlassDefs USING[ Handle ],
ProtocolDefs USING[ Handle, ReturnCode, RNameType, RSOperation ],
PupDefs USING[ PupAddress ];
MaintainPrivate: DEFINITIONS =
BEGIN
-- Exported by Maintainer --
Handle: TYPE = POINTER TO HandleObject;
HandleObject: TYPE = RECORD[
str: ProtocolDefs.Handle,
serverAddr: PupDefs.PupAddress,
addrKnown: BOOLEAN,
caller: BodyDefs.RName,
callerPwd: STRING,
callerKey: BodyDefs.Password,
authenticated: BOOLEAN,
verifying: BOOLEAN,
name: BodyDefs.RName, -- current misc operand --
individual: BodyDefs.RName, -- current individual name --
group: BodyDefs.RName, -- current group name --
dName: BodyDefs.RName, -- current name for TypeEntry --
glass: GlassDefs.Handle];
Del: ERROR; -- command aborted because DEL has been typed --
Failed: ERROR; -- command failed and has typed error message --
-- Exported by MaintainType --
TypeEntry: PROC[Handle];
TypeDetails: PROC[Handle];
TypeMembers: PROC[Handle];
-- Exported by MaintainCommon --
CreateIndividual: PROC[Handle];
AddMailbox: PROC[Handle];
AddMember: PROC[Handle];
RemoveMember: PROC[Handle];
-- Exported by MaintainCommands --
VerifyName: PROC[Handle];
DeleteIndividual: PROC[Handle];
CreateGroup: PROC[Handle];
DeleteGroup: PROC[Handle];
SetPassword: PROC[Handle];
SetDecimalPassword: PROC[Handle];
SetConnect: PROC[Handle];
BadRemark: ERROR[bad: CHARACTER];
SetRemark: PROC[Handle];
RemoveMailbox: PROC[Handle];
AddForward: PROC[Handle];
RemoveForward: PROC[Handle];
AddOwner: PROC[Handle];
RemoveOwner: PROC[Handle];
AddFriend: PROC[Handle];
RemoveFriend: PROC[Handle];
AddSelf: PROC[Handle];
RemoveSelf: PROC[Handle];
SetServer: PROC[Handle];
InitializeNewName: PROC[Handle];
-- Exported by MaintainGroups --
VerifyGroup: PROC[Handle];
AddListOfMembers: PROC[Handle];
RemoveAllMemberships: PROC[Handle];
TypeAllGroups: PROC[Handle];
ModifyAllOccurrences: PROC[Handle];
VerifyAllGroups: PROC[Handle];
-- Exported by MaintainComm --
Update: PROC[handle: Handle,
op: ProtocolDefs.RSOperation,
name: BodyDefs.RName,
value: BodyDefs.RName ← NIL,
connect: BodyDefs.Connect ← NIL,
remark: BodyDefs.Remark ← NIL,
key: BodyDefs.Password ← [0,0,0,0],
sendRList: PROC[ProtocolDefs.Handle] ← NIL ];
Operate: PROC[handle: Handle,
op: ProtocolDefs.RSOperation,
name: BodyDefs.RName,
value: BodyDefs.RName ← NIL,
connect: BodyDefs.Connect ← NIL,
remark: BodyDefs.Remark ← NIL,
key: BodyDefs.Password ← [0,0,0,0],
sendRList: PROC[ProtocolDefs.Handle] ← NIL ]
RETURNS[ rc: ProtocolDefs.ReturnCode ];
-- exported by MaintainDetails --
CopyName: PROC[from, to: BodyDefs.RName];
CantCheckName: SIGNAL[bad: BodyDefs.RName];
BadName: SIGNAL[bad: BodyDefs.RName];
BadConnect: SIGNAL[bad: BodyDefs.Connect];
VerifyOnOff: PROC[Handle];
CheckMailName: PROC[name: BodyDefs.RName];
-- may raise CantCheckName or BadName --
CheckSiteName: PROC[name: BodyDefs.RName];
-- may raise CantCheckName or BadName or BadConnect --
CheckRealName: PROC[name: BodyDefs.RName];
-- may raise CantCheckName or BadName --
CheckConnect: PROC[connect: BodyDefs.Connect];
-- may raise BadConnect --
Command: TYPE = RECORD[name: STRING, work: PROC[Handle] ];
Parse: PROC[Handle, DESCRIPTOR FOR ARRAY OF Command, STRING];
ReadWord: PROC[str: GlassDefs.Handle, prompt, dest: STRING];
-- may raise Del --
ReadPassword: PROC[str: GlassDefs.Handle,
text, pwd: STRING]
RETURNS[key: BodyDefs.Password];
-- may raise Del --
Confirm: PROC[str: GlassDefs.Handle] RETURNS[ BOOLEAN ];
-- may raise Del --
TypeType: PROC[str: GlassDefs.Handle,
type: ProtocolDefs.RNameType];
-- Exported by MaintainErrors --
TypeRC: PROC[handle: Handle,
op: ProtocolDefs.RSOperation,
rc: ProtocolDefs.ReturnCode,
name: BodyDefs.RName,
value: STRING];
ProposalType: TYPE = { either, group, individual };
ProposeName: PROC[handle: Handle,
name: BodyDefs.RName,
wanted: ProposalType];
END.