next up previous contents
Nächste Seite: Methoden zur Fehlerbehandlung Aufwärts: Benutzung von AudioMsg Vorherige Seite: Prüfsummenverwaltung   Inhalt

Stream-Methoden

Eine AudioMsg arbeitet auch als Eingabe- und als Ausgabestream. Es können also mit den entsprechenden Operatoren (s.u.) einfach Werte und sogar komplexe Datenstrukturen abgespeichert und wieder eingelesen werden. Wie bei jedem Stream sollte natürlich die Reihenfolge beim Schreiben und beim Wiederauslesen gleich sein.

Mit Ausgabestream ist dabei der Stream für Schreiben in eine AudioMsg, mit Eingabestream der Stream für das Lesen aus einer AudioMsg, also die Eingabe von Werten gemeint!

Ausserdem gibt es noch einige Funktionen, die eine Kontrolle des Streams ermöglichen. In den meisten Fällen sollten sie jedoch nicht benötigt werden.

AudioMsg& rewindWrite(); Zurücksetzen des Ausgabestreams; dies hat ein komplettes Löschen sowohl des Ausgabestreams als auch des Eingabestreams zur Folge!

AudioMsg& rewindRead(); Zurücksetzen des Eingabestreams: Das Auslesen geht wieder am Anfang los und der Ausgabestream bleibt unverändert.

AudioMsg& markWrite(); Setze eine Marke in den Ausgabetream. An diese Stelle kann man mit rollbackWrite() wieder zurückspringen, wobei dann alles hinter dieser Marke gelöscht wird.

Dies ist zum Beispiel dann sinnvoll, wenn man Operatoren für größere Datentypen schreibt: Man setzt vor der Ausgabe der Einzeldaten eine Marke und schreibt dann alle Einzeldaten mittels ihrer Operatoren auf den Stream. Wenn am Ende dieser Operationen der Status des Streams nicht OK ist, kann man mit rollbackWrite() das Schreiben wieder Rückgängig machen und stattdessen z.B. false in den Stream schreiben, das vom Eingabeoperator des komplexen Datentypes als ''ungültig`` interpretiert werden sollte.

Die Marken bleiben beim Übertragen einer Nachricht nicht erhalten!

AudioMsg &rollbackWrite(); Zurückspringen an die mit markWrite() gesetzte Markierung. Weiteres siehe dort.

AudioMsg& markRead(); Setzen einer Marke in den Eingabestream, die mit rollbackRead() wieder angesprungen werden kann. Näheres siehe dort!

AudioMsg &rollbackRead(); Zurückspringen zur Marke des Eingabestreams. Im Gegensatz zu rollbackWrite() wird hier natürlich nichts am Streaminhalt verändert.


next up previous contents
Nächste Seite: Methoden zur Fehlerbehandlung Aufwärts: Benutzung von AudioMsg Vorherige Seite: Prüfsummenverwaltung   Inhalt
Debian User 2001-05-17