<> <> <> <> <<>> <> DIRECTORY IO USING[STREAM, noWhereStream], Rope USING [ROPE], ViewerClasses USING[Viewer, ViewerFlavor]; DBTools: CEDAR DEFINITIONS IMPORTS IO = BEGIN OPEN Rope; EstablishToolDB: PROC [file: Rope.ROPE]; Close: PROC []; <> ToolDB: READONLY Rope.ROPE; readOnly: READONLY BOOLEAN; RegisterTool: PROC [toolName, loadFile: ROPE]; <> GetLoadFile: PROC[toolName: ROPE] RETURNS[loadFile: ROPE]; <> SetToolDocumentation: PROC[toolName: ROPE, docFile, briefDoc: ROPE _ NIL]; <> GetToolDocumentation: PROC[toolName: ROPE] RETURNS[docFile, briefDoc: ROPE]; <> <<>> SetToolDescriptors: PROC[toolName: ROPE, descriptors: LIST OF ROPE _ NIL]; <> <<>> GetToolDescriptors: PROC[toolName: ROPE] RETURNS[descriptors: LIST OF ROPE]; <> <<>> FindMatchingTools: PROC [descriptors: LIST OF ROPE] RETURNS [tools: LIST OF ROPE]; <> LoadTool: PROC [toolName: ROPE, errorStream: IO.STREAM _ IO.noWhereStream]; <> <<>> ApplyTool: PROC [toolName, arguments: ROPE, errorStream: IO.STREAM _ IO.noWhereStream]; <> RegisterViewerFlavor: PROC[tool: ROPE, flavor: ViewerClasses.ViewerFlavor]; <> RegisterNamePattern: PROC[toolName, pattern: ROPE]; <> RegisterArgumentPattern: PROC[toolName, pattern: ROPE]; <> GetViewerInfo: PROC[tool: ROPE] RETURNS[flavor: ViewerClasses.ViewerFlavor, namePattern, argumentPattern: ROPE]; ViewerToTool: PROC[v: ViewerClasses.Viewer] RETURNS[toolName: ROPE, arguments: ROPE]; <> WriteCatalogue: PROC[ file: Rope.ROPE ]; <> <<>> <> <<>> <> <<>> ReadCatalogue: PROC[ file: Rope.ROPE, eraseFirst: BOOL _ FALSE]; <> END.