Co je objekt CArchive
Objekt CArchive
poskytuje mechanismus ukládání do vyrovnávací paměti bezpečného typu pro zápis nebo čtení serializovatelných objektů do nebo z objektu CFile
. Obvykle objekt CFile
představuje diskový soubor, ale může to být také paměťový soubor (CSharedFile
objekt), například představující schránku.
Daný CArchive
objekt buď ukládá (zapisuje, serializuje) data, nebo načte (čtení, deserializuje) data, ale nikdy obojí. Životnost objektu CArchive
je omezená na jeden průchod zápisem objektů do souboru nebo čtení objektů ze souboru. Proto jsou k serializaci dat do souboru vyžadovány dva postupně vytvořené CArchive
objekty a pak je deserializovat zpět ze souboru.
Když archiv ukládá objekty do souboru, archiv připojí CRuntimeClass
název k objektům. Když pak další archiv načte objekty ze souboru do paměti, CObject
-odvozené objekty se dynamicky rekonstruují na CRuntimeClass
základě objektů. Daný objekt může být odkazován více než jednou, protože je zapsán do souboru uložením archivu. Archiv načítání však objekt rekonstruuje pouze jednou. Podrobnosti o tom, jak archiv připojuje CRuntimeClass
informace k objektům a rekonstruuje objekty s ohledem na možné odkazy, jsou popsány v technické poznámce 2.
Vzhledem k tomu, že jsou data serializována do archivu, archiv shromažďuje data, dokud nebude jeho vyrovnávací paměť plná. Pak archiv zapíše svou vyrovnávací paměť do objektu CFile
, na který CArchive
odkazuje objekt. Podobně při čtení dat z archivu načte data ze souboru do vyrovnávací paměti a pak z vyrovnávací paměti do deserializovaného objektu. Toto ukládání do vyrovnávací paměti snižuje počet fyzických čtení pevného disku, čímž se zlepší výkon vaší aplikace.