<> <> <> DIRECTORY BasicTime USING [GMT], FSBackdoor USING [Version], FSRemoteFileBackdoor USING [ServerHandle], Rope USING [ROPE], STP USING [Handle] ; STPFSRemoteFile: CEDAR DEFINITIONS ~ { <> ROPE: TYPE ~ Rope.ROPE; <> ServerData: TYPE ~ REF ServerDataObject; ServerDataObject: TYPE ~ RECORD [ ttl: CARD, -- server entry time-to-live (significant only if down) downMsg: ROPE, -- non-NIL => server is down connectionTTL: CARD, -- connection time-to-live stpH: STP.Handle, -- cached STP handle for server serverPupName: ROPE -- for STP.Open ]; <> FTPTimeToGMT: PROCEDURE [t: Rope.ROPE] RETURNS [BasicTime.GMT]; <> GetServerPupName: PROC [server: Rope.ROPE] RETURNS [pupServer: Rope.ROPE]; <> <> LookupResult: TYPE = {noResponse, noSuchPort, noSuchServer, noSuchFile, ok}; Lookup: PROCEDURE [h: FSRemoteFileBackdoor.ServerHandle, file: ROPE] RETURNS [result: LookupResult, version: FSBackdoor.Version, create: BasicTime.GMT, count: INT]; <> <> <> <> }...