Was ist ein CArchive-Objekt?
Ein CArchive
Objekt stellt einen typsicheren Puffermechanismus zum Schreiben oder Lesen serialisierbarer Objekte in oder aus einem CFile
Objekt bereit. In der Regel stellt das CFile
Objekt eine Datenträgerdatei dar. Es kann jedoch auch eine Speicherdatei (CSharedFile
Objekt) sein, die möglicherweise die Zwischenablage darstellt.
Ein bestimmtes CArchive
Objekt speichert entweder Daten (schreibt, serialisiert) oder lädt (liest, deserialisiert) Daten, aber nie beide. Die Lebensdauer eines CArchive
Objekts ist auf einen Durchlauf durch Das Schreiben von Objekten in eine Datei oder das Lesen von Objekten aus einer Datei beschränkt. Daher sind zwei aufeinander folgende CArchive
Objekte erforderlich, um Daten in eine Datei zu serialisieren und sie dann aus der Datei zurück zu deserialisieren.
Wenn ein Archiv Objekte an eine Datei speichert, fügt das Archiv den CRuntimeClass
Namen an die Objekte an. Wenn dann ein anderes Archiv Objekte aus einer Datei in den Speicher lädt, werden die CObject
von -abgeleiteten Objekte basierend auf den CRuntimeClass
Objekten dynamisch rekonstruiert. Auf ein bestimmtes Objekt kann mehr als einmal verwiesen werden, da es durch das Speichern des Archivs in die Datei geschrieben wird. Das Laden des Archivs wird das Objekt jedoch nur einmal rekonstruieren. Die Details dazu, wie ein Archiv Informationen an Objekte anfügt CRuntimeClass
und Objekte rekonstruiert, unter Berücksichtigung möglicher mehrfacher Verweise, wird in Technical Note 2 beschrieben.
Da Daten in ein Archiv serialisiert werden, sammelt das Archiv die Daten, bis der Puffer voll ist. Anschließend schreibt das Archiv seinen Puffer in das Objekt, auf das CFile
vom CArchive
Objekt verwiesen wird. Ebenso liest sie beim Lesen von Daten aus einem Archiv Daten aus der Datei in den Puffer und dann aus dem Puffer in Ihr deserialisiertes Objekt. Durch diese Pufferung wird die Häufigkeit reduziert, mit der eine Festplatte physisch gelesen wird, wodurch die Leistung Ihrer Anwendung verbessert wird.