QEDataManager.mesa
Last Edited by: Arnon, November 19, 1987 8:31:50 am PST
Manages storage of, and access to, the major data items for a qe problem, or a cad. Clients should not need to know whether the data they want is currently in VM, or offline in the LoganBerry DB.
Thus all routines that create cells, or adjacencies, or clusters, submit them to the DataManager, who is either to support retrieval of either fully linked (in VM) items, or actual LoganBerry entries.
For retrieves, either caller can pass in the things he's already got in memory, and DataManager will not attempt to look them up and recreate them in memory, but will just fill in the supplied pointers. Or perhaps DataManager can keep track of things it knows about. First way seems better.
The Primary attribute type for the LoganBerry DB is $UniversalID. These names don't have to be particularly clever, just easily distinguished.
The kinds of things that we store in the LoganBerry DB are defined to be "QE Objects". A global registry of which of these are currently online, i.e. loaded into memory, is maintained.
DIRECTORY
Rope,
IO,
AlgebraClasses;
QEDataManager: CEDAR DEFINITIONS
~ BEGIN
Abbreviations from Imported Interfaces
ROPE: TYPE ~ Rope.ROPE;
Types for Simulated LoganBerry DB
LBAttributeType: TYPE = ATOM;
LBAttributeValue: TYPE = ROPE;
LBAttribute: TYPE = RECORD[
type: LBAttributeType,
value: LBAttributeValue
];
LBEntry: TYPE = LIST OF LBAttribute;
LBLog: TYPE = LIST OF LBEntry;
Operations
BinaryOp: AlgebraClasses.BinaryOp;
UnaryOp: AlgebraClasses.UnaryOp;
END.