Co to jest obiekt CArchive
Obiekt CArchive
zapewnia mechanizm buforowania bezpiecznego typu do zapisywania lub odczytywania obiektów z możliwością serializacji do lub z CFile
obiektu. CFile
Zazwyczaj obiekt reprezentuje plik dysku, jednak może to być również plik pamięci (CSharedFile
obiekt), być może reprezentujący Schowek.
CArchive
Dany obiekt przechowuje (zapisy, serializuje) dane lub ładuje (odczyty, deserializy), ale nigdy nie oba te dane. Żywotność CArchive
obiektu jest ograniczona do jednego przekazywanego przez zapisywanie obiektów do pliku lub odczytywanie obiektów z pliku. W związku z tym dwa kolejne utworzone CArchive
obiekty są wymagane do serializacji danych do pliku, a następnie deserializacji go z powrotem z pliku.
Gdy archiwum przechowuje obiekty w pliku, archiwum dołącza CRuntimeClass
nazwę do obiektów. Następnie, gdy inne archiwum ładuje obiekty z pliku do pamięci, CObject
obiekty pochodne są dynamicznie rekonstruowane na CRuntimeClass
podstawie obiektów. Dany obiekt może być przywoływane więcej niż raz, ponieważ jest zapisywany w pliku przez archiwum magazynu. Archiwum ładowania zrekonstruuje jednak obiekt tylko raz. Szczegółowe informacje o sposobie dołączania CRuntimeClass
informacji do obiektów i rekonstruowania obiektów, biorąc pod uwagę możliwe wiele odwołań, są opisane w notatce technicznej 2.
Ponieważ dane są serializowane do archiwum, archiwum gromadzi dane do momentu zapełnienia buforu. Następnie archiwum zapisuje jego bufor do CFile
obiektu wskazywanego CArchive
przez obiekt. Podobnie podczas odczytywania danych z archiwum odczytuje dane z pliku do jego buforu, a następnie z buforu do obiektu deserializowanego. Buforowanie zmniejsza liczbę operacji odczytu dysku twardego, co zwiększa wydajność aplikacji.