Esempio di provider NTFS non gestito
Nell'esempio NTFSProvider viene illustrato come è possibile utilizzare C++ per implementare un provider di sincronizzazione che sincronizza file in una cartella di file. Per semplicità, in questo esempio non vengono gestite le sottocartelle.
Sicurezza Nota |
---|
Questo codice di esempio viene fornito per illustrare un concetto. Poiché l'esempio potrebbe non utilizzare le procedure di codifica più sicure, il codice non deve essere utilizzato in applicazioni o siti Web. Microsoft non si assume responsabilità per danni incidentali o consequenziali derivanti dall'uso del codice di esempio per scopi diversi da quelli previsti. |
Percorso del file
I file di questo esempio si trovano nel percorso in cui è installato Sync Framework. Il percorso predefinito è C:\Programmi (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\NTFSSample.
Contenuto
In questo esempio sono contenuti due progetti in una soluzione Microsoft Visual Studio:
NTFSProvider. Rappresenta l'implementazione del provider di sincronizzazione.
SampleTest. Rappresenta un'applicazione di sincronizzazione semplice.
File
Il progetto NTFSProvider contiene i seguenti file.
File di origine | Descrizione |
---|---|
MetadataStore.h, MetadataStore.cpp |
Classe helper utilizzata nell'esempio per archiviare i metadati per la sincronizzazione nel file system. |
MyStore.h, MyStore.cpp |
Classe del provider di sincronizzazione. Implementa IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever e ISynchronousNotifyingChangeApplierTarget per la partecipazione alla sincronizzazione. |
MyTransferMechanism.h, MyTransferMechanism.cpp |
Classe che incapsula un flusso di file e implementa IUnknown. Un'istanza di questa classe viene passata da un provider a un altro e utilizzata per copiare i dati effettivi del file durante la sincronizzazione. |
Il progetto SampleTest contiene i file seguenti.
File di origine | Descrizione |
---|---|
SyncController.h, SyncController.cpp |
Classe che crea e ospita l'oggetto della sessione di sincronizzazione. Questa classe implementa anche ISyncCallback ed effettua la registrazione per ricevere eventi di sincronizzazione dall'oggetto della sessione. |
SyncMain.cpp |
Punto di ingresso dell'applicazione. Analizza la riga di comando, crea un'istanza dei provider e dell'oggetto controller, li connette tra loro e avvia la sincronizzazione. |
Interfacce
In questo esempio vengono illustrate le interfacce Sync Framework seguenti:
IKnowledgeSyncProvider |
IEnumSyncChanges |
ISyncProvider |
ISyncChange |
ISynchronousDataRetriever |
IForgottenKnowledge |
ISynchronousNotifyingChangeApplierTarget |
ISynchronousNotifyingChangeApplier |
ISyncCallback |
ILoadChangeContext |
ISyncKnowledge |
ISaveChangeContext |
ISyncChangeBatch |
IApplicationSyncServices |
IProviderSyncServices |
ISyncSession |
Requisiti
Per generare ed eseguire questo esempio, è necessario installare il software seguente:
- Microsoft Visual Studio 2005 o Visual Studio 2008
Generazione dell'esempio
Per compilare l'esempio tramite Visual Studio
Aprire il file NTFSProvider.sln.
Scegliere Compila soluzione dal menu Compila.
Esecuzione dell'esempio
Per eseguire SampleTest.exe
Nella cartella radice, creare due cartelle: Folder1 e Folder2.
Aggiungere contenuto, ad esempio file di testo, alle cartelle. Verificare che il contenuto di Folder1 sia diverso da quello di Folder2.
Per eseguire l'esempio dal prompt dei comandi, aprire una finestra del prompt dei comandi e individuare la cartella contenente SampleTest.exe. Dal prompt dei comandi, digitare: SampleTest.exe C:\Folder1 C:\Folder2.
Per eseguire l'esempio in Visual Studio, aprire Pagine delle proprietà per il progetto SampleTest. Nel campo Debug argomenti del comando, digitare: C:\Folder1 C:\Folder2. Scegliere Avvia debug dal menu Debug.
Alla fine dell'esempio, Folder1 e Folder2 conterranno lo stesso set di file. Le cartelle contengono inoltre i file contenenti i metadati per la sincronizzazione, ad esempio Knowledge.Sync, Metadata.Sync, Replica.Sync e TickCount.Sync.
Vedere anche
Concetti
Componenti principali di Sync Framework