<> <> DIRECTORY CHOpsP2V3 USING [Authenticator], CrRPC USING [Handle], IO USING [STREAM], Rope USING [ROPE], XNS USING [Host], XNSCH USING [Conversation, Element] ; XNSCHPrivate: CEDAR DEFINITIONS ~ { OPEN CHOps: CHOpsP2V3; <> Authenticator: TYPE ~ CHOps.Authenticator; Conversation: TYPE ~ XNSCH.Conversation; Element: TYPE ~ XNSCH.Element; Handle: TYPE ~ CrRPC.Handle; Host: TYPE ~ XNS.Host; ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; <> GetAuthenticator: PROC [c: Conversation, host: Host] RETURNS [Authenticator]; IsGeneric: PROC [c: Conversation] RETURNS [BOOL]; <> <<(See CrRPC)>> <<>> GetElement: PROC [stream: STREAM] RETURNS [element: Element]; GetOrganization: PROC [stream: STREAM] RETURNS [element: Element]; <> GetDomain: PROC [stream: STREAM] RETURNS [element: Element]; <> PutElement: PROC [stream: STREAM, element: Element]; <> RemoteProc: TYPE ~ PROC[handle: Handle, host: Host]; CallRemote: PROC [c: Conversation, proc: RemoteProc, domain: ROPE _ NIL, idempotent: BOOL _ TRUE]; }...