<<>> <> <> <> <> DIRECTORY DFOperations, DFUtilities, IO, Rope, SymTab; DFCachingOperations: CEDAR DEFINITIONS = { ROPE: TYPE ~ Rope.ROPE; InteractionProc: TYPE ~ DFOperations.InteractionProc; SymbolTable: TYPE ~ SymTab.Ref; BringOverCache: TYPE ~ REF BringOverCachePrivate; BringOverCachePrivate: TYPE; CreateCache: PROC RETURNS [BringOverCache]; BringOverAction: TYPE ~ RECORD [ enter: BOOL ¬ TRUE, < enter the file as a local file>> suspicious: BOOL ¬ FALSE, < check the server to verify remote existence of the file>> fetch: BOOL ¬ FALSE, < fetch the file contents (otherwise just attach)>> confirmEarlier: BOOL ¬ TRUE, < attaching files with earlier create dates requires confirmation>> confirmGlobalDestination: BOOL ¬ TRUE, < bringing over into a global directory requires confirmation>> dontDoit: BOOL ¬ FALSE, < don't actually do anything, just test to see what needs to be done>> dfsToo: BOOL ¬ FALSE < also bring over DF files being processed>> ]; FileFilter: TYPE ~ RECORD [ fileTypes: FileTypeFilter ¬ allFileTypes, files: SymbolTable ¬ NIL, strict: BOOL ¬ TRUE --files#NIL AND strict => everything in files expected to be found and Miss raised for those not found ]; allFiles: FileFilter ~ []; allFilesV: READONLY FileFilter; -- = allFiles; for use with the interpreter FileTypeFilter: TYPE ~ ARRAY Publicity OF ARRAY Ownership OF ARRAY Derivation OF BOOL; allFileTypes: FileTypeFilter ~ ALL[ALL[ALL[TRUE]]]; noFileTypes: FileTypeFilter ~ ALL[ALL[ALL[FALSE]]]; Publicity: TYPE ~ Attribute[public .. private]; Ownership: TYPE ~ Attribute[defining .. imported]; Derivation: TYPE ~ Attribute[source .. derived]; Attribute: TYPE ~ {public, private, defining, imported, source, derived}; BringOver: PROC [dfFile: ROPE, filter: FileFilter ¬ allFiles, action: BringOverAction ¬ [], interact: InteractionProc ¬ NIL, clientData: REF ¬ NIL, log, errlog: IO.STREAM ¬ NIL, workingDir: ROPE ¬ NIL, cache: BringOverCache ¬ NIL] RETURNS [errors, warnings, filesActedUpon: INT]; TranslateFilter: PROC [DFOperations.BringOverFilter] RETURNS [FileFilter]; TranslateAction: PROC [DFOperations.BringOverAction] RETURNS [BringOverAction]; CacheSize: PROC [BringOverCache] RETURNS [INT]; }.