Stream: (# ... #);
Text: Stream(# ... #);
File: Stream(# ... #);
UnixFile: File(# ... #);
NtFile: File(# ... #);
MacFile: File(# ... #);
The Stream pattern also allows you to identify a subrange of a
Stream and manipulate this as a separate Stream - the "surrounding"
Stream will be manipulated each time the substream is manipulated
and vice versa.
As part of the interface to the operating system, the basic libraries also include patterns for accessing the directory structures of hierarchical file systems:
Directory: (# ... #); UnixDirectory: Directory(# ... #); NtDirectory: Directory(# ... #); MacDirectory: Directory(# ... #);
container
_________________|__________________________________
| | | | |
collection arrayContainer dictionary list sequentialContainer
______|_______ ___________|_______________
| | | | | |
multiset hashTable stack queue deque prioQueue
|
set
__|_____________________
| |
classificationSet classificationSubSet
Container patterns are generic patterns in the sense that the
element type of the elements kept in the container can vary
between different container instances.
MultiSet is an unstructured collection of element references,
where duplicates are allowed.
Set is like multiSet, except that duplicated are not allowed.
ClassificationSet (and the accompanying classificationSubset) is
used for dynamic classification of objects.
HashTable implements a standard hash table datastructure.
ArrayContainer is an abstraction of an element repetition,
augmented with sorting operations
Stack implements a stack datastructure.
Queue implements a queue datastructure.
Deque implements a double-ended queue datastructure.
PrioQueue implements a priority queue datastructure.
Dictionary is used for storing associations between two objects
- a Key and a corresponding Entry.
List implements a list data structure. Lists may be recursive
(i.e. lists may have sublists).
Mjølner System: Basic Libraries.
Mjølner System: Container Libraries.
Mjølner System: Process Libraries.