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.
Seguranç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
Abra o arquivo NTFSProvider.sln.
No menu Criar, selecione BuildSolution.
Executando o exemplo
Para executar o SampleTest.exe
Na pasta raiz, crie duas pastas: Folder1 e Folder2.
Adicione conteúdo às pastas, como arquivos de texto. Verifique se os conteúdos de Folder1 são diferentes dos de Folder2.
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.
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.
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