<<>> <> <> <> <<>> DIRECTORY Prop USING [PropList], Rope USING [ROPE], SunRPC USING [Handle, Server]; SunRPCBinding: CEDAR DEFINITIONS ~ BEGIN OPEN Rope; Error: ERROR [errorCode: ErrorCode, explanation: ROPE, propList: Prop.PropList ¬ NIL]; ErrorCode: TYPE ~ { ok, -- no error someError, -- catch-all nameLookupFailed, -- could not find the named server registryNotAvailable, -- could not contact the registry (i.e., PortMapper) registrationFailed, -- registry did not allow registration to happen serviceNotAvailable, -- the service is not registered authenticationProblem, -- details are in explanation and propList protocolError, -- probably a bug in the SunRPCBinding implemtation or the server timeout, -- some resource timed out brokenConnection, -- some resource timed out notSupported, -- some combination of features is not supported spare1, spare2, spare3, spare4 }; AtomFromErrorCode: PROC [ErrorCode] RETURNS [ATOM]; Transport: TYPE ~ MACHINE DEPENDENT { UDP, TCP, (255) }; Registry: TYPE ~ MACHINE DEPENDENT { PortMapper, LocalRegistry, (255) }; Import: PROC [hostName: ROPE, pgm: INT, version: INT, instance: ROPE ¬ NIL, transport: Transport ¬ $UDP, nameServiceFlavor: ATOM ¬ NIL, registry: Registry ¬ $PortMapper] RETURNS [SunRPC.Handle]; <> Export: PROC [unboundServer: SunRPC.Server, instance: ROPE ¬ NIL, transport: Transport ¬ $UDP, concurrency: CARDINAL ¬ 1, reExport: BOOL ¬ TRUE, registry: Registry ¬ PortMapper] RETURNS [SunRPC.Server]; <> END.