BasicPackagesDoc.tioga
Copyright © 1985 by Xerox Corporation. All rights reserved.
Russ Atkinson (RRA) June 24, 1985 9:52:35 pm PDT
BASIC PACKAGES
CEDAR 6.0 — FOR INTERNAL XEROX USE ONLY
Basic Packages
-- a collection of useful packages
Russ Atkinson
© Copyright 1985 Xerox Corporation. All rights reserved.
Abstract: BasicPackages is a collection of useful small packages that is loaded in the default Cedar system. It exports the following interfaces: Commander, PriorityQueue, Random, RedBlackTree, RefTab, RopeFile, RopeList, SymTab. Sadly, the documentation for these interfaces is contained in the source code for the interfaces.
Created by: various artists
Maintained by: Russ Atkinson <Atkinson.pa>
Keywords: Commander, PriorityQueue, Random, RedBlackTree, RefTab, RopeFile, RopeList, SymTab
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
1. Commander
Commander manages command interpreter handles, primarily used by the CommandTool. Access to the registry of commands is properly minotiorized. Access to Commander objects is not monitorized (concurrency is the client's responsibility).
2. PriorityQueue
PriorityQueue manages priority queue objects, which support insertion of arbitrary objects, with fast removal of the "best" object (determined by user predicate). Access to PriorityQueue objects is monitorized for concurrent access.
3. Random
Random manages simple random number generator streams. Access to Random streams is monitorized for concurrent access.
4. RedBlackTree
RedBlackTree manages ordered symbol tables, where the user provides the sorting predicates. It uses self-adjusting trees to keep the nodes, with expected time of log(N) for insertion or deletion operations (worst case time of N). Access to RedBlackTree tables is monitorized for concurrent access.
5. RefTab
RefTab manages hash tables that map from from REFs to REFs based on address equality. It is a reasonably fast method of maintaining associations between objects. Access to RefTab tables is monitorized for concurrent access.
6. RopeFile
RopeFile provides a fast means of making files into ropes. It is used underneath large Tioga files, although it has no Tioga dependence. Access to RopeFile ropes is monitorized for concurrent access.
7. RopeList
RopeList manipulates lists of ropes much in the same way as List manipulates lists of REFs. Access to RopeFile ropes is not monitorized, concurrency is the responsibility of the client.
8. SymTab
SymTab manages symbol table objects, each of which is a fast hash table mapping from ropes to REFs. The hash size can be given at symbol table creation time to allow for tuning to the expected contents. The symbol lookup can be either case dependent (as for Mesa identifiers) or case independent (as for file names). Access to SymTab tables is monitorized for concurrent access.