Qu'est-ce qu'un objet CArchive ?
Un CArchive
objet fournit un mécanisme de mise en mémoire tampon de type sécurisé pour l’écriture ou la lecture d’objets sérialisables vers ou à partir d’un CFile
objet. En règle générale, l’objet CFile
représente un fichier disque ; toutefois, il peut également s’agir d’un fichier mémoire (CSharedFile
objet), peut-être représentant le Presse-papiers.
Un objet donné CArchive
stocke (écrit, sérialise) des données ou charge (lit, désérialise) des données, mais jamais les deux. La vie d’un CArchive
objet est limitée à une transmission directe d’objets dans un fichier ou de lecture d’objets à partir d’un fichier. Par conséquent, deux objets créés CArchive
successivement sont nécessaires pour sérialiser des données vers un fichier, puis le désérialiser à partir du fichier.
Lorsqu’une archive stocke des objets dans un fichier, l’archive attache le CRuntimeClass
nom aux objets. Ensuite, lorsqu’une autre archive charge des objets d’un fichier en mémoire, les CObject
objets dérivés sont reconstruits dynamiquement en fonction CRuntimeClass
des objets. Un objet donné peut être référencé plusieurs fois, car il est écrit dans le fichier par l’archive de stockage. Toutefois, l’archive de chargement reconstruit l’objet une seule fois. Les détails sur la façon dont une archive attache des CRuntimeClass
informations aux objets et reconstruit des objets, en tenant compte des références multiples possibles, sont décrits dans la Note technique 2.
À mesure que les données sont sérialisées dans une archive, l’archive accumule les données jusqu’à ce que sa mémoire tampon soit pleine. Ensuite, l’archive écrit sa mémoire tampon dans l’objet CFile
pointé par l’objet CArchive
. De même, lorsque vous lisez des données d’une archive, elle lit les données du fichier dans sa mémoire tampon, puis de la mémoire tampon à votre objet désérialisé. Cette mise en mémoire tampon réduit le nombre de fois où un disque dur est lu physiquement, ce qui améliore les performances de votre application.