-- 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.