<<>> <> <> <> <<>> DIRECTORY PFSNames USING [PATH], Rope USING [ROPE]; <<>> <<>> PFSPrefixMap: CEDAR DEFINITIONS ~ BEGIN <> PATH: TYPE = PFSNames.PATH; <> Entry: TYPE ~ RECORD [ prefix: PATH, translation: PATH ]; EntryList: TYPE ~ LIST OF Entry; TranslationWithHints: TYPE ~ RECORD [ translation: PATH, -- the complete translation. fsName: Rope.ROPE, -- the rope part of the first component of the complete translation nameOnFS: PATH, -- translation with empty server part replacedPrefix: PATH, -- components in source name replaced ... suppliedPrefixLen: CARDINAL -- number of components in translation (and nameOnFS) which replaced them ]; <<>> <<>> <> Translate: PROC [name: PATH] RETURNS [PATH]; <> <<>> TranslateAndGetHints: PROC [name: PATH] RETURNS [TranslationWithHints]; <> <<>> Insert: PROC [prefix: PATH, translation: PATH]; <> Delete: PROC [name: PATH] RETURNS [PATH]; <> Lookup: PROC [prefix: PATH] RETURNS [PATH]; <> GetMap: PROC [] RETURNS [EntryList]; <> SetMap: PROC [map: EntryList]; <> END.