Compartilhar via


Exemplo de provedor NTFS não gerenciado

O exemplo do NTFSProvider mostra como você pode usar C++ para implementar um provedor de sincronização que sincroniza arquivos em uma pasta de arquivos. Para maior simplicidade, este exemplo não trata subpastas.

Security noteSegurança Observação:

Este código de exemplo é fornecido para ilustrar um conceito. Como o exemplo pode não usar as práticas de codificação mais seguras, o código não deve ser usado em aplicativos ou sites. O Microsoft não assume responsabilidade por danos incidentais ou conseqüenciais se o código de exemplo é usado para uma finalidade diferente da pretendida.

Local do arquivo

Os arquivos para este exemplo estão localizados onde o Estrutura de sincronização está instalado. O local padrão é C:\Arquivos de Programas (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\NTFSSample.

Sumário

Este exemplo contém dois projetos em uma solução do Microsoft Visual Studio:

  • **NTFSProvider.**É a implementação do provedor de sincronização.

  • SampleTest. É um simples aplicativo de sincronização.

Arquivos

O projeto NTFSProvider contém os seguintes arquivos.

Arquivo de origem Descrição

MetadataStore.h, MetadataStore.cpp

Uma classe auxiliar que o exemplo usa para armazenar metadados de sincronização no sistema de arquivos.

MyStore.h, MyStore.cpp

A classe do provedor de sincronização. Isso implementa IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever e ISynchronousNotifyingChangeApplierTarget para participarem da sincronização.

MyTransferMechanism.h, MyTransferMechanism.cpp

Uma classe que encapsula o fluxo de arquivos e implementa IUnknown. Uma instância dessa classe é passada de um provedor para outro e é usada para copiar os dados reais do arquivo durante a sincronização.

O projeto SampleTest contém os seguintes arquivos.

Arquivo de origem Descrição

SyncController.h, SyncController.cpp

Uma classe que cria e hospeda o objeto de sessão de sincronização. Esta classe também implementa ISyncCallback e registra para receber eventos de sincronização do objeto de sessão.

SyncMain.cpp

O ponto de entrada para o aplicativo. Isso analisa a linha de comando, instancia os provedores e o objeto de controle, conecta todos entre si e inicia a sincronização.

Interfaces

Este exemplo demonstra as seguintes interfaces do Estrutura de sincronização:

IKnowledgeSyncProvider

IEnumSyncChanges

ISyncProvider

ISyncChange

ISynchronousDataRetriever

IForgottenKnowledge

ISynchronousNotifyingChangeApplierTarget

ISynchronousNotifyingChangeApplier

ISyncCallback

ILoadChangeContext

ISyncKnowledge

ISaveChangeContext

ISyncChangeBatch

IApplicationSyncServices

IProviderSyncServices

ISyncSession

Requisitos

Para criar e executar esse exemplo, o software a seguir deve estar instalado:

  • Microsoft Visual Studio 2005 ou Visual Studio 2008

Criando o exemplo

Para criar o exemplo com o Visual Studio

  1. Abra o arquivo NTFSProvider.sln.

  2. No menu Criar, selecione BuildSolution.

Executando o exemplo

Para executar o SampleTest.exe

  1. Na pasta raiz, crie duas pastas: Folder1 e Folder2.

  2. Adicione conteúdo às pastas, como arquivos de texto. Verifique se os conteúdos de Folder1 são diferentes dos de Folder2.

  3. Para executar o exemplo em um prompt de comando, abra a janela Prompt de Comando e localize a pasta que contém SampleTest.exe. No prompt de comando, digite: TesteExemplo.exe C:\Folder1 C:\Folder2.

  4. Para executar o exemplo no Visual Studio, abra as Páginas de propriedade para o projeto SampleTest. No campo Depuração de argumentos de comando, o tipo: C:\Folder1 C:\Folder2. No menu Depurar, clique em Iniciar Depuração.

  5. Quando o exemplo for concluído, Folder1 e Folder2 conterão o mesmo conjunto de arquivos. As pastas também contêm arquivos que contêm metadados de sincronização, como Knowledge.Sync, Metadata.Sync, Replica.Sync e TickCount.Sync.

Consulte também

Conceitos

Componentes principais do Sync Framework

Outros recursos

Exemplos de sincronização de dados personalizados