¿Qué es un objeto CArchive?
Un objeto CArchive
proporciona un mecanismo de almacenamiento en búfer con seguridad de tipos para escribir o leer objetos serializables en un objeto CFile
o desde este. Normalmente, el objeto CFile
representa un archivo de disco; sin embargo, también puede ser un archivo de memoria (objeto CSharedFile
), quizás representando el portapapeles.
Un objeto determinado CArchive
almacena (escribe, serializa) datos o carga (lee, deserializa) datos, pero nunca ambos. La vida de un objeto CArchive
se limita a un paso a través de la escritura de objetos en un archivo o la lectura de objetos de un archivo. Por lo tanto, se requieren dos objetos CArchive
creados sucesivamente para serializar datos en un archivo y, a continuación, deserializarlos de nuevo desde el archivo.
Cuando un archivo almacena objetos en un archivo, este anexa el nombre CRuntimeClass
a los objetos. A continuación, cuando otro archivo carga objetos de un archivo a la memoria, los objetos derivados de CObject
se reconstruyen dinámicamente en función del valor CRuntimeClass
de los objetos. El archivo de almacenamiento puede hacer referencia a un objeto determinado más de una vez, ya que se escribe en el archivo. Sin embargo, el archivo de carga reconstruirá el objeto una sola vez. Los detalles sobre cómo un archivo adjunta información de CRuntimeClass
a objetos y reconstruye objetos, teniendo en cuenta varias referencias posibles, se describe en la Nota técnica 2.
A medida que los datos se serializan en un archivo, el archivo acumula los datos hasta que su búfer está lleno. A continuación, el archivo escribe su búfer en el objeto CFile
al que apunta el objeto CArchive
. Del mismo modo, a medida que lee datos de un archivo, se leen los datos del archivo en su búfer y, a continuación, desde el búfer hasta el objeto deserializado. Este almacenamiento en búfer reduce el número de veces que se lee físicamente un disco duro, lo que mejora el rendimiento de la aplicación.