Partilhar via


O que é um objeto CArchive

Um objeto CArchive fornece um mecanismo de buffer fortemente tipado para gravar ou ler objetos serializáveis de ou para um objeto CFile. Normalmente, o objeto CFile representa um arquivo de disco; no entanto, ele também pode ser um arquivo de memória (objeto CSharedFile), talvez representando a Área de Transferência.

Um determinado objeto CArchive armazena (grava, serializa) dados ou carrega (lê, desserializa) dados, mas nunca ambos. A vida útil de um objeto CArchive é limitada a uma passagem por meio da gravação de objetos em um arquivo ou à leitura de objetos de um arquivo. Assim, dois objetos CArchive criados sucessivamente são necessários para serializar dados em um arquivo e, em seguida, desserializá-los de volta do arquivo.

Quando uma camada de arquivos armazena objetos em um arquivo, a camada de arquivos anexa o nome CRuntimeClass aos objetos. Em seguida, quando outra camada de arquivos carrega objetos de um arquivo para a memória, os objetos derivados de CObject são reconstruídos dinamicamente com base nos objetos CRuntimeClass. Um determinado objeto pode ser referenciado mais de uma vez, pois ele é gravado no arquivo pelo arquivo de armazenamento. O arquivo de carregamento, no entanto, reconstruirá o objeto apenas uma vez. Os detalhes sobre como uma camada de arquivos anexa informações CRuntimeClass a objetos e reconstrói objetos, levando em conta possíveis referências múltiplas, são descritos na Nota Técnica 2.

À medida que os dados são serializados para uma camada de arquivos, a camada de arquivos acumula os dados até que o buffer esteja cheio. Em seguida, a camada de arquivos grava o buffer no objeto CFile apontado pelo objeto CArchive. Da mesma forma, conforme você lê dados de uma camada de arquivos, ela lê os dados do arquivo no buffer e, em seguida, do buffer para o objeto desserializado. Esse armazenamento em buffer reduz o número de vezes em que um disco rígido é lido fisicamente, melhorando assim o desempenho do aplicativo.

Confira também

Serialização: serializando um objeto