Образец неуправляемого поставщика NTFS

Образец неуправляемого поставщика NTFS показывает использование на языке C++ службы синхронизации, синхронизирующего файлы в папке. Для простоты в этом образце не предусмотрена обработка вложенных папок.

Security noteБезопасность Примечание.

Этот образец кода приводится в качестве иллюстрации основных понятий. Поскольку образец не использует приемы самого безопасного программирования, этот код не должен применяться в приложениях или на веб-узлах. Microsoft Корпорация Майкрософт не несет никакой ответственности за побочные или косвенные убытки, если этот образец кода будет применяться в целях, отличающихся от предполагаемых.

Расположение файлов

Файлы образца размещаются в каталоге установки Sync Framework. По умолчанию это C:\Program Files (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\NTFSSample.

Содержимое

Этот образец содержит два проекта в решении Microsoft Visual Studio.

  • NTFSProvider. Реализация службы синхронизации.

  • SampleTest. Простое приложение синхронизации.

Файлы

Проект NTFSProvider содержит следующие файлы.

Исходный файл Описание

MetadataStore.h, MetadataStore.cpp

Вспомогательный класс, который используется образцом для хранения метаданных синхронизации в файловой системе.

MyStore.h, MyStore.cpp

Класс службы синхронизации. Реализует интерфейсы IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever и ISynchronousNotifyingChangeApplierTarget для участия в синхронизации.

MyTransferMechanism.h, MyTransferMechanism.cpp

Класс, инкапсулирующий файловый поток и реализующий метод IUnknown. Экземпляр этого класса передается от одного поставщика к другому и используется для копирования действительных данных файла во время синхронизации.

Проект SampleTest содержит следующие файлы.

Исходный файл Описание

SyncController.h, SyncController.cpp

Класс, который создает и размещает объект сеанса синхронизации. Этот класс также реализует интерфейс ISyncCallback и регистры для получения событий синхронизации от объекта сеанса синхронизации.

SyncMain.cpp

Точка входа в приложение. Выполняет синтаксический анализ командной строки, создает экземпляры служб и объект контроллера, соединяет их друг с другом и запускает синхронизацию.

Интерфейсы

В образце показаны следующие интерфейсы Sync Framework:

IKnowledgeSyncProvider

IEnumSyncChanges

ISyncProvider

ISyncChange

ISynchronousDataRetriever

IForgottenKnowledge

ISynchronousNotifyingChangeApplierTarget

ISynchronousNotifyingChangeApplier

ISyncCallback

ILoadChangeContext

ISyncKnowledge

ISaveChangeContext

ISyncChangeBatch

IApplicationSyncServices

IProviderSyncServices

ISyncSession

Требования

Для построения и вызова на выполнение этого образца должно быть установлено следующее программное обеспечение.

  • Microsoft Visual Studio 2005 или Visual Studio 2008

Построение образца

Построение образца с использованием Visual Studio

  1. Откройте файл NTFSProvider.sln.

  2. В меню Построить выберите пункт Построить решение.

Запуск образца

Запуск SampleTest.exe

  1. Создайте в корневой папке две папки: Folder1 и Folder2.

  2. Добавьте в папки содержимое, например текстовые файлы. Убедитесь, что содержимое папки Folder1 отличается от содержимого папки Folder2.

  3. Чтобы запустить образец в командной строке, отройте окно командной строки и найдите папку, в которую помещен файл SampleTest.exe. В командной строке введите: SampleTest.exe C:\Folder1 C:\Folder2.

  4. Чтобы запустить образец в среде Visual Studio, откройте диалоговое окно Страницы свойств для проекта SampleTest. В поле Аргументы команды отладки введите: C:\Folder1 C:\Folder2. В меню Отладка выберите команду Запустить отладку.

  5. По завершении работы образца папки Folder1 и Folder2 будут содержать одинаковые наборы файлов. Эти папки также содержат файлы с метаданными синхронизации, например Knowledge.Sync, Metadata.Sync, Replica.Sync и TickCount.Sync.

См. также

Основные понятия

Базовые компоненты Sync Framework

Другие ресурсы

Образцы нестандартной синхронизации данных