Definizione di oggetto CArchive
Un CArchive
oggetto fornisce un meccanismo di buffering indipendente dai tipi per la scrittura o la lettura di oggetti serializzabili da o verso un CFile
oggetto . In genere l'oggetto CFile
rappresenta un file su disco, ma può anche essere un file di memoria (CSharedFile
oggetto ), forse rappresenta gli Appunti.
Un determinato CArchive
oggetto archivia (scrive, serializza) dati o carica (letture, deserializza) dati, ma non entrambi. La durata di un CArchive
oggetto è limitata a un passaggio attraverso la scrittura di oggetti in un file o la lettura di oggetti da un file. Pertanto, due oggetti creati CArchive
successivamente sono necessari per serializzare i dati in un file e quindi deserializzarli dal file.
Quando un archivio archivia gli oggetti in un file, l'archivio allega il CRuntimeClass
nome agli oggetti. Quindi, quando un altro archivio carica oggetti da un file alla memoria, gli CObject
oggetti derivati da vengono ricostruiti dinamicamente in base all'oggetto CRuntimeClass
degli oggetti . È possibile fare riferimento a un determinato oggetto più volte perché viene scritto nel file dall'archivio di archiviazione. L'archivio di caricamento, tuttavia, ricostruirà l'oggetto una sola volta. I dettagli su come un archivio allega informazioni CRuntimeClass
agli oggetti e ricostruisce gli oggetti, tenendo conto dei possibili riferimenti, sono descritti nella Nota tecnica 2.
Man mano che i dati vengono serializzati in un archivio, l'archivio accumula i dati fino a quando il buffer non è pieno. L'archivio scrive quindi il buffer nell'oggetto CFile
a cui punta l'oggetto CArchive
. Analogamente, durante la lettura dei dati da un archivio, legge i dati dal file al relativo buffer e quindi dal buffer all'oggetto deserializzato. Questo buffering riduce il numero di volte in cui un disco rigido viene letto fisicamente, migliorando così le prestazioni dell'applicazione.