Universität Ulm,
Fakultät für Mathematik und Wirtschaftswissenschaften,
SAI
WS 97/98 || Entwicklung objekt-orientierter Bibliotheken || Beispiele
History
Dieses Beispiel demonstriert die Einrichtung eines
Stream-Filters anhand eines History-Filters, der
die Möglichkeit offeriert, alte Eingabezeilen zu wiederholen,
ohne sie neu eintippen zu müssen.
Aus der
letzten Variante von Collections
stammen die Module Collections und Lists,
die zur Verwaltung der bereits gesehenen Eingabezeilen dienen.
- Collections
-
Wurde zusammen mit Lists unverändert zur Verwaltung
der Eingabezeilen übernommen.
- Histories
-
Hier wird die Filterkette aufgebaut, die später von dem
Testprogramm vor Streams.stdin eingeschoben wird:
Die beteiligten Stream-Objekte sind blau eingezeichnet,
die darauf operierenden Module gelb und
die durch
Forwarders.Forward
eingerichteten Abhängigkeiten werden durch rote Pfeile repräsentiert.
- Lists
-
Wurde zusammen mit Collections unverändert zur Verwaltung
der Eingabezeilen übernommen.
- TestIt
-
Ein kleines Testprogramm zu Histories, das den
Filter vor Streams.stdin einbaut.
Hier eine Demositzung:
belinda$ testit
1% Dies ist die erste Zeile
Got: Dies ist die erste Zeile
2% und hier folgte die zweite
Got: und hier folgte die zweite
3% und hier die dritte
Got: und hier die dritte
4% !2
Got: und hier folgte die zweite
5% !1
Got: Dies ist die erste Zeile
6% !7
Got: !7
7% belinda$
Die Prompts erscheinen natürlich nur, wenn es eine Möglichkeit
gibt, auf den Eingabekanal auch zu schreiben. Dies ist bei
der Verwendung einer UNIX-Pipeline nicht der Fall:
belinda$ echo Eine Zeile | testit
Got: Eine Zeile
belinda$
Die Quellen stehen als Shell-Archiv zur Verfügung.
WS 97/98 || Entwicklung objekt-orientierter Bibliotheken || Beispiele
Andreas Borchert, 5. Dezember 1997