DIRECTORY Rope USING [ROPE], UserProfile USING [ProfileChangedProc, ProfileChangeReason]; UserProfileBackdoor: CEDAR DEFINITIONS = BEGIN GuestProcsRec: TYPE = RECORD [ IsGuestProcess: PROC [] RETURNS [isGuest: BOOL], Boolean: PROC [key: Rope.ROPE, default: BOOLEAN ¬ FALSE] RETURNS [value: BOOLEAN], Number: PROC [key: Rope.ROPE, default: INT ¬ 0] RETURNS [value: INT], Token: PROC [key: Rope.ROPE, default: Rope.ROPE ¬ NIL] RETURNS [value: Rope.ROPE], ListOfTokens: PROC [key: Rope.ROPE, default: LIST OF Rope.ROPE ¬ NIL] RETURNS [value: LIST OF Rope.ROPE], Line: PROC [key: Rope.ROPE, default: Rope.ROPE ¬ NIL] RETURNS [value: Rope.ROPE], GetProfileName: PROC RETURNS [Rope.ROPE], CallWhenProfileChanges: PROC [proc: UserProfile.ProfileChangedProc], ProfileChanged: PROC [reason: UserProfile.ProfileChangeReason] ]; RegisterGuestProcs: PROC [newProcs: REF GuestProcsRec]; END.  UserProfileBackdoor.mesa Copyright Σ 1986, 1991 by Xerox Corporation. All rights reserved. Edited by Bob Hagmann on November 27, 1984 8:32:43 am PST This interface allows clients to register procedures in UserProfile to implement guest processes. Κβ–(cedarcode) style•NewlineDelimiter ™codešœ™Kšœ Οeœ7™BKšœ9™9—K˜šΟk ˜ Kšœžœžœ˜Kšœ žœ+˜K˜K˜—KšŸœžœ žœ˜7K˜—K˜Kšžœ˜K˜K™—…—vZ