<> <> <> <<>> DIRECTORY BasicTime USING [GMT], FS USING [FileType, InfoProc, NameProc, tUnspecified], FSBackdoor USING [Version], IO USING [STREAM], Rope USING [ROPE] ; FSRemoteFileExtras: CEDAR DEFINITIONS ~ { <> ROPE: TYPE ~ Rope.ROPE; GMT: TYPE ~ BasicTime.GMT; Version: TYPE ~ FSBackdoor.Version; FileType: TYPE ~ FS.FileType; <> Delete: PROCEDURE [server, file: ROPE, wantedCreatedTime: GMT, proc: ConfirmProc]; <> ConfirmProc: TYPE ~ PROC [v: Version] RETURNS [BOOL]; <> EnumerateForInfo: PROCEDURE [server, pattern: ROPE, proc: InfoProc]; InfoProc: TYPE ~ FS.InfoProc -- [fullFName, attachedTo: ROPE, created: GMT, bytes: INT, keep: CARDINAL, fileType: FileType] RETURNS [continue: BOOL] -- ; <> EnumerateForNames: PROCEDURE [server, pattern: ROPE, proc: NameProc]; NameProc: TYPE ~ FS.NameProc -- [fullFName: ROPE] RETURNS [continue: BOOL] -- ; <> Info: PROCEDURE [server, file: ROPE, wantedCreatedTime: GMT] RETURNS [version: Version, bytes: INT, created: GMT, fileType: FileType]; Rename: PROCEDURE [server, fromFile: ROPE, fromCreated: GMT, toFile: ROPE, proc: ConfirmProc]; <> Retrieve: PROCEDURE [server, file: ROPE, wantedCreatedTime: GMT, proc: ConfirmRetrieveProc, checkFileType: BOOL _ FALSE, fileType: FileType _ FS.tUnspecified]; <> ConfirmRetrieveProc: TYPE ~ PROC [fullGName: Rope.ROPE, bytes: INT, created: GMT] RETURNS [IO.STREAM]; Store: PROCEDURE [server, file: ROPE, str: IO.STREAM, created: GMT, proc: ConfirmProc]; <> <> <> <> ServerHandle: TYPE ~ REF ServerObject; ServerObject: TYPE ~ RECORD [ flavor: ATOM, name: ROPE, procs: ServerProcs, data: REF ]; ServerProcs: TYPE ~ REF ServerProcsObject; ServerProcsObject: TYPE ~ RECORD [ sweep: SweepProc _ NIL, validate: ValidateProc, delete: DeleteProc, enumerateForInfo: EnumerateForInfoProc, enumerateForNames: EnumerateForNamesProc, getInfo: GetInfoProc, rename: RenameProc, retrieve: RetrieveProc, store: StoreProc ]; SweepProc: TYPE ~ PROC [h: ServerHandle, seconds: INT]; <> ValidateProc: TYPE ~ PROC [h: ServerHandle] RETURNS [ok: BOOL]; <> <> DeleteProc: TYPE ~ PROC [h: ServerHandle, file: ROPE, wantedCreatedTime: GMT, proc: ConfirmProc]; EnumerateForInfoProc: TYPE ~ PROC [h: ServerHandle, pattern: ROPE, proc: InfoProc]; EnumerateForNamesProc: TYPE ~ PROC [h: ServerHandle, pattern: ROPE, proc: NameProc]; GetInfoProc: TYPE ~ PROC [h: ServerHandle, file: ROPE, wantedCreatedTime: GMT] RETURNS [version: Version, bytes: INT, created: GMT, fileType: FileType]; RenameProc: TYPE ~ PROC [h: ServerHandle, fromFile: ROPE, fromCreated: GMT, toFile: ROPE, proc: ConfirmProc]; RetrieveProc: TYPE ~ PROC [h: ServerHandle, file: ROPE, wantedCreatedTime: GMT, proc: ConfirmRetrieveProc, checkFileType: BOOL, fileType: FileType]; StoreProc: TYPE ~ PROC [h: ServerHandle, file: ROPE, str: IO.STREAM, created: GMT, proc: ConfirmProc]; <> Register: PROC [flavor: ATOM, getServer: GetServerProc]; <> GetServerProc: TYPE ~ PROC [server: ROPE] RETURNS [h: ServerHandle]; <> <> <> <> <> <> <> SetCachedServer: PROC [server: ROPE, flavor: ATOM]; <> ClearCachedServer: PROC [server: ROPE]; <<>> }...