IReplicaMetadata::GetFullEnumerationChangeBatch
Obtiene un lote de cambios que contiene metadatos de elemento para los elementos cuyos identificadores son mayores o iguales que el límite inferior especificado, como parte de una enumeración completa.
HRESULT GetFullEnumerationChangeBatch(
DWORD dwBatchSize,
const BYTE * pbLowerEnumerationBound,
ISyncKnowledge * pSyncKnowledge,
ISyncFullEnumerationChangeBatch ** ppSyncChangeBatch);
Parámetros
- dwBatchSize
[in] Tamaño del lote de cambios que se va a devolver.
- pbLowerEnumerationBound
[in] Límite inferior para los identificadores de elemento. Este método devuelve cambios con identificadores mayores o iguales que este valor de identificador.
- pSyncKnowledge
[in] Conocimiento de la réplica de destino.
- ppSyncChangeBatch
[out] Devuelve el lote de cambios.
Valor devuelto
S_OK
E_POINTER
E_INVALIDARG si dwBatchSize es 0.
Notas
Este método ayuda a un proveedor de sincronización a implementar su método IKnowledgeSyncProvider::GetFullEnumerationChangeBatch. Se llama a este método durante la recuperación de conocimiento olvidado.
Antes de que los proveedores llamen a este método, deben asegurarse de que las versiones del almacén de metadatos reflejan todos los cambios locales, incluso las eliminaciones. Esto se logra mediante un paso de mantenimiento de metadatos explícito para enumerar los elementos y actualizar sus metadatos.
La implementación de esta clase que está disponible mediante ISqlSyncMetadataStore agrega cambios ordenados según su identificador global al lote de cambios.
La implementación de esta clase, que está disponible mediante ISqlSyncMetadataStore, también devuelve todos los elementos con identificadores menores que pbLowerEnumerationBound que no están contenidos en pSyncKnowledge.
La implementación de esta clase que está disponible mediante ISqlSyncMetadataStore llama a SetLastBatch en el lote de cambios devuelto cuando no quedan cambios por enviar.
Notas para los implementadores
Este método debe enumerar, por orden de identificador de elemento, los cambios cuyo identificador de elemento es mayor o igual que pbLowerEnumerationBound. Esto permite a Sync Framework determinar qué elementos del proveedor de destino se han eliminado pero han sido olvidados por el proveedor de origen.
Si no queda ningún cambio por enviar después de este lote, se debe llamar a SetLastBatch en el lote de cambios devuelto, o Sync Framework llamará de nuevo a IKnowledgeSyncProvider::GetFullEnumerationChangeBatch para recuperar otro lote de cambios.
Para un proveedor que envía datos de elemento junto con metadatos de cambio de elemento, se puede usar pSyncKnowledge para determinar si es necesario enviar los datos de elemento. Los datos de elemento no se tienen que enviar cuando el cambio de elemento está contenido en pSyncKnowledge.