-- File: FilerImpl.mesa - last edit: -- BJackson.pa 23-Jun-85 0:07:09 -- Copyright (C) 1985 by Xerox Corporation. All rights reserved. DIRECTORY FileName USING [AllocVFN, FreeVFN, VirtualFilename], FileTransfer USING [ Connection, Copy, Create, Delete, Error, ErrorCode, SetPrimaryCredentials, SetSecondaryCredentials], Put USING [Line, LongString], Filer; FilerImpl: PROGRAM IMPORTS FileName, FileTransfer, Put EXPORTS Filer = BEGIN agentName: LONG STRING = "PrintAgent.Demo"; agentDirectory: LONG STRING = "Cedar"; agentPassword: LONG STRING = "SIGPLAN"; msg: ARRAY FileTransfer.ErrorCode OF LONG STRING = [ "(00) illegalParameters"L, "(01) invalidObject"L, "(02) notAStream"L, "(03) ==??=="L, "(04) illegalLogin"L, "(05) illegalConnect"L, "(06) skipFile"L, "(07) skipOperation"L, "(08) cantModify"L, "(09) retry"L, "(10) directoryFull"L, "(11) notFound"L, "(12) accessDenied"L, "(13) spare3"L, "(14) spare4"L, "(15) ==??=="L, "(16) ==??=="L, "(17) ==??=="L, "(18) ==??=="L, "(19) ==??=="L, "(20) ==??=="L, "(21) ==??=="L, "(22) ==??=="L, "(23) ==??=="L, "(24) ==??=="L, "(25) ==??=="L, "(26) ==??=="L, "(27) ==??=="L, "(28) ==??=="L, "(29) ==??=="L, "(30) ==??=="L, "(31) unknown"L]; fromconn: FileTransfer.Connection _ NIL; fromvfn: FileName.VirtualFilename; toconn: FileTransfer.Connection _ NIL; tovfn: FileName.VirtualFilename; File: PUBLIC PROCEDURE [from, to: LONG STRING] = BEGIN failed: BOOLEAN _ FALSE; tovfn _ FileName.AllocVFN[to]; fromvfn _ FileName.AllocVFN[from]; FileTransfer.Copy[ sourceFile: fromvfn, destFile: tovfn, sourceConn: fromconn, destConn: toconn, veto: NIL, showDates: FALSE ! FileTransfer.Error => { Put.LongString[NIL, "FileTransfer.Error in File.Copy: "L]; Put.Line[NIL, msg[code]]; SELECT code FROM illegalParameters, invalidObject, notAStream, illegalLogin, illegalConnect, skipOperation, cantModify, retry, directoryFull, notFound, accessDenied, skipFile, unknown => { failed _ TRUE; CONTINUE}; ENDCASE; }]; IF (NOT failed) THEN FileTransfer.Delete[ conn: fromconn, file: fromvfn, veto: NIL ! FileTransfer.Error => {CONTINUE}]; FileName.FreeVFN[tovfn]; FileName.FreeVFN[fromvfn]; END; <> Init: PROCEDURE = BEGIN toconn _ FileTransfer.Create[]; fromconn _ FileTransfer.Create[]; FileTransfer.SetPrimaryCredentials[ conn: toconn, user: agentName, password: agentPassword]; -- FileTransfer.SetSecondaryCredentials[ -- conn: toconn, connectName: agentDirectory, -- connectPassword: agentPassword]; END; <> <
> Init[]; END... <>