Compartir a través de


Ejemplo de proveedor NTFS no administrado

El ejemplo NTFSProvider muestra cómo puede utilizar C++ para implementar un proveedor de sincronización que sincroniza los archivos de una carpeta de archivos. Por simplicidad, este ejemplo no controla las subcarpetas.

Security noteSeguridad Nota

Este código de ejemplo se proporciona para ilustrar un concepto. Dado que el ejemplo podría no utilizar las prácticas de codificación más seguras, el código no se debería utilizar en aplicaciones o sitios web. Microsoft no asume ninguna responsabilidad debida a daños incidentales o que sea consecuencia del uso del código de ejemplo para fines diferentes al previsto.

Ubicación de los archivos

Los archivos de este ejemplo se encuentran donde está instalado Sync Framework. La ubicación predeterminada es C:\Archivos de programa (x86)\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\NTFSSample.

Contenido

Este ejemplo contiene dos proyectos en una solución de Microsoft Visual Studio:

  • NTFSProvider. Se trata de la implementación del proveedor de sincronización.

  • SampleTest. Es una aplicación de sincronización sencilla.

Archivos

El proyecto NTFSProvider contiene los archivos siguientes.

Archivo de código fuente Descripción

MetadataStore.h, MetadataStore.cpp

Clase de aplicación auxiliar que el ejemplo utiliza para almacenar los metadatos de sincronización en el sistema de archivos.

MyStore.h, MyStore.cpp

Clase de proveedor de sincronización. Implementa las interfaces IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever eISynchronousNotifyingChangeApplierTarget para participar en la sincronización.

MyTransferMechanism.h, MyTransferMechanism.cpp

Clase que encapsula una secuencia de archivo e implementa IUnknown. Una instancia de esta clase se pasa de un proveedor a otro y se utiliza para copiar los datos de los archivos reales durante la sincronización.

El proyecto SampleTest contiene los archivos siguientes.

Archivo de código fuente Descripción

SyncController.h, SyncController.cpp

Clase que crea y hospeda el objeto de sesión de sincronización. Esta clase también implementa ISyncCallback y los registros para recibir los eventos de sincronización del objeto de sesión.

SyncMain.cpp

Punto de entrada a la aplicación. Analiza la línea de comandos, crea instancias de los proveedores y el objeto de controlador, los conecta todos entre sí e inicia la sincronización.

Interfaces

En este ejemplo se demuestran las interfaces de Sync Framework siguientes:

IKnowledgeSyncProvider

IEnumSyncChanges

ISyncProvider

ISyncChange

ISynchronousDataRetriever

IForgottenKnowledge

ISynchronousNotifyingChangeApplierTarget

ISynchronousNotifyingChangeApplier

ISyncCallback

ILoadChangeContext

ISyncKnowledge

ISaveChangeContext

ISyncChangeBatch

IApplicationSyncServices

IProviderSyncServices

ISyncSession

Requisitos

Para generar y ejecutar este ejemplo, se debe instalar el software siguiente:

  • Microsoft Visual Studio 2005 o Visual Studio 2008

Generar el ejemplo

Para generar el ejemplo con Visual Studio

  1. Abra el archivo NTFSProvider.sln.

  2. En el menú Generar, seleccione Generar solución.

Ejecutar el ejemplo

Para ejecutar SampleTest.exe

  1. En la carpeta raíz, cree dos carpetas: Folder1 y Folder2.

  2. Agregue contenido, por ejemplo archivos de texto, a las carpetas. Asegúrese de que el contenido de Folder1 difiere del de Folder2.

  3. Para ejecutar el ejemplo en un símbolo del sistema, abra una ventana de símbolo del sistema y busque la carpeta que contiene el archivo SampleTest.exe. En el símbolo del sistema, escriba: SampleTest.exe C:\Folder1 C:\Folder2.

  4. Para ejecutar el ejemplo en Visual Studio, abra las Páginas de propiedades para el proyecto SampleTest. En el campo Debugging Command Arguments, escriba: C:\Folder1 C:\Folder2. En el menú Depurar, haga clic en Iniciar depuración.

  5. Cuando el ejemplo finaliza, Folder1 y Folder2 contienen el mismo conjunto de archivos. Las carpetas también contienen archivos que incluyen los metadatos de sincronización, como Knowledge.Sync, Metadata.Sync, Replica.Sync y TickCount.Sync.

Vea también

Conceptos

Componentes principales de Sync Framework

Otros recursos

Ejemplos de sincronización de datos personalizados