<<>> <> <> <> <> <<>> <> <<>> DIRECTORY LoganBerry; LoganBerryClass: CEDAR DEFINITIONS ~ BEGIN OPEN LoganBerry; <> <> OpenProc: TYPE ~ PROC [conv: Conv, dbName: ROPE] RETURNS [db: OpenDB]; DescribeProc: TYPE ~ PROC [conv: Conv, db: OpenDB] RETURNS [info: SchemaInfo]; ReadEntryProc: TYPE ~ PROC [conv: Conv, db: OpenDB, key: AttributeType, value: AttributeValue] RETURNS [entry: Entry, others: BOOLEAN]; EnumerateEntriesProc: TYPE ~ PROC [db: OpenDB, key: AttributeType, start: AttributeValue, end: AttributeValue, proc: EntryProc] RETURNS []; GenerateEntriesProc: TYPE ~ PROC [conv: Conv, db: OpenDB, key: AttributeType, start: AttributeValue, end: AttributeValue] RETURNS [cursor: Cursor]; NextEntryProc: TYPE ~ PROC [conv: Conv, cursor: Cursor, dir: CursorDirection] RETURNS [entry: Entry]; EndGenerateProc: TYPE ~ PROC [conv: Conv, cursor: Cursor] RETURNS []; WriteEntryProc: TYPE ~ PROC [conv: Conv, db: OpenDB, entry: Entry, log: LogID, replace: BOOLEAN] RETURNS []; DeleteEntryProc: TYPE ~ PROC [conv: Conv, db: OpenDB, key: AttributeType, value: AttributeValue] RETURNS [deleted: Entry]; CloseProc: TYPE ~ PROC [conv: Conv, db: OpenDB] RETURNS []; BuildIndicesProc: TYPE ~ PROC [conv: Conv, db: OpenDB] RETURNS []; CompactLogsProc: TYPE ~ PROC [conv: Conv, db: OpenDB] RETURNS []; RegisterWriteProcProc: TYPE ~ PROC [proc: WriteProc, db: OpenDB, ident: ATOM, clientData: REF] RETURNS []; UnregisterWriteProcProc: TYPE ~ PROC [db: OpenDB, ident: ATOM] RETURNS []; IsLocalProc: TYPE ~ PROC [db: OpenDB] RETURNS [local: BOOL]; StartTransactionProc: TYPE ~ PROC [db: OpenDB, wantAtomic: BOOLEAN ¬ FALSE]; EndTransactionProc: TYPE ~ PROC [db: OpenDB, commit: BOOLEAN ¬ TRUE] RETURNS [committed: BOOLEAN]; FlushDBCacheProc: TYPE ~ PROC [db: OpenDB ¬ nullDB]; Class: TYPE ~ REF ClassObject; ClassObject: TYPE ~ RECORD [ name: ATOM ¬ NIL, open: OpenProc ¬ NIL, describe: DescribeProc ¬ NIL, readEntry: ReadEntryProc ¬ NIL, enumerateEntries: EnumerateEntriesProc ¬ NIL, generateEntries: GenerateEntriesProc ¬ NIL, nextEntry: NextEntryProc ¬ NIL, endGenerate: EndGenerateProc ¬ NIL, writeEntry: WriteEntryProc ¬ NIL, deleteEntry: DeleteEntryProc ¬ NIL, close: CloseProc ¬ NIL, buildIndices: BuildIndicesProc ¬ NIL, compactLogs: CompactLogsProc ¬ NIL, isLocal: IsLocalProc ¬ NIL, startTransaction: StartTransactionProc ¬ NIL, endTransaction: EndTransactionProc ¬ NIL, flushDBCache: FlushDBCacheProc ¬ NIL, classData: REF ¬ NIL ]; <> <<>> <> Register: PROC [name: ATOM, class: Class, tryLast: BOOLEAN ¬ FALSE] RETURNS []; <> <<>> Lookup: PROC [name: ATOM] RETURNS [class: Class]; <> <<>> List: PROC [] RETURNS [classes: LIST OF Class]; <> <<>> <> GetDBSpecifics: PROC [db: LoganBerry.OpenDB] RETURNS [class: ATOM, dbhandle: LoganBerry.OpenDB]; <> END.