Session
The extra level of indirection here between ServerHandle & ServerDataObject is handy to isolate the layers of abstraction. The XNS layer traffics in ServerData's for transport information, the PFS layer traffics in ServerHandle's to identify the underlying transport, and the binding (mnt) is required for transitioning between the layers, and for background processing.
ServerHandle: TYPE ~ REF ServerObject;
ServerObject: TYPE ~ RECORD [ mnt: XNSFilingOps.ServerData ];
XNSGetServer: PROC [server: ROPE]
RETURNS [h: ServerHandle ← NIL, downMsg: ROPE ← NIL];
XNSSweep: PROC [h: ServerHandle, seconds: CARD32];
XNSValidate: PROC [h: ServerHandle]
RETURNS [obsolete: BOOL, downMsg: ROPE];
}.