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.
Seguridad 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
Abra el archivo NTFSProvider.sln.
En el menú Generar, seleccione Generar solución.
Ejecutar el ejemplo
Para ejecutar SampleTest.exe
En la carpeta raíz, cree dos carpetas: Folder1 y Folder2.
Agregue contenido, por ejemplo archivos de texto, a las carpetas. Asegúrese de que el contenido de Folder1 difiere del de Folder2.
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.
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.
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