DFCachingOperations.mesa
Copyright Ó 1991 by Xerox Corporation. All rights reserved.
Last tweaked by Mike Spreitzer on April 7, 1987 11:03:43 am PDT
Michael Plass, January 23, 1992 10:15 am PST
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,
TRUE => enter the file as a local file
suspicious: BOOL ¬ FALSE,
TRUE => check the server to verify remote existence of the file
fetch: BOOL ¬ FALSE,
TRUE => fetch the file contents (otherwise just attach)
confirmEarlier: BOOL ¬ TRUE,
TRUE => attaching files with earlier create dates requires confirmation
confirmGlobalDestination: BOOL ¬ TRUE,
TRUE => bringing over into a global directory requires confirmation
dontDoit: BOOL ¬ FALSE,
TRUE => don't actually do anything, just test to see what needs to be done
dfsToo: BOOL ¬ FALSE
TRUE => 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];
}.