Stream serialisieren?
-
Hi everyone
Erneut eine Frage zur boost-Serialisierung: Meine Klasse symbolisiert ein Gerät, das über irgendein Interface an den Computer angeschlossen ist. Im Normalfall ist das eine serielle Schnittstelle, kann aber auch eine TCP-Verbindung sein, etc. Deshalb habe ich mich dazu entschlossen, in meiner Klasse ein iostream-Objekt zu halten, welches das entsprechende Interface repräsentiert.
Nun möchte ich diese Klasse in eine XML-Datei serialisieren und bin mir nicht so sicher, wie ich das mit diesem Stream handhaben sollte. Ich nehmen an, das iostream-Objekt einfach so zu serialisieren wird nicht klappen, also müsste ich vielleicht speichern, wie der Stream zu erstellen ist (z.B. Unix Gerätedatei der seriellen Schnittstelle oder IP-Adresse der TCP-Verbindung, etc.). Dabei ginge aber erneut die Transparenz des Streams verloren, da ich plötzlich zwischen den verschiedenen Arten der Streams (und ihrer Adressierungsarten) selbst unterscheiden müsste.
Wie könnte man so was wohl am elegantesten bewerkstelligen?
Danke für jede Antwort und greeetz
Kessi
-
Da wirst du mit der Standard-Serialisierung durch Überladung der << bzw >> Operatoren nicht weiter kommen.
Ich denke, du solltest dafür dann einen Wrapper (Adapter) schreiben, welcher eine XML-Serialisierung (z.B. http://sourceforge.net/projects/tinyxml) kapselt.Ich denke mal, du willst nicht das ganze En-/Decoding (z.B. UTF-8, UTF-16 etc.) beim Lesen und Schreiben von XML selbst vornehmen.