IReplicaMetadata2::GetFilteredFullEnumerationChangeBatch
Obtém um lote de alterações filtrado que contém metadados dos itens que têm IDs maiores ou iguais ao limite inferior especificado como parte de uma enumeração completa.
HRESULT GetFilteredFullEnumerationChangeBatch(
DWORD dwBatchSize,
ISyncFilterInfo * pFilterInfo,
IChangeBatchCallback * pCallback,
const BYTE * pbLowerFullEnumerationBound,
ISyncKnowledge * pSyncKnowledge,
ISyncFullEnumerationChangeBatch ** ppChangeBatch);
Parâmetros
- dwBatchSize
[in] O tamanho do lote de alterações que será retornado.
- pFilterInfo
[in] Um objeto ISyncFilterInfo que representa informações sobre um filtro que pode ser usado para controlar quais alterações são incluídas em um lote de alterações.
- pCallback
[in, unique] Um objeto IChangeBatchCallback usado para determinar se um item deve ser incluído em um lote de alterações.
- pbLowerFullEnumerationBound
[in] O limite inferior de IDs de itens. Este método retorna alterações com IDs maiores ou iguais a este valor de ID, se elas atenderem aos critérios de filtro especificados em pFilterInfo.
- pSyncKnowledge
[in] O conhecimento da réplica de destino.
- ppChangeBatch
[out] Retorna o lote seguinte de alterações.
Valor de retorno
S_OK.
E_POINTER.
E_INVALIDARG quando dwBatchSize for 0.
Comentários
Este método ajuda um provedor de sincronização a implementar seu método IKnowledgeSyncProvider::GetFullEnumerationChangeBatch quando a filtragem de itens é usada. Este método é chamado durante a recuperação de conhecimento esquecido.
Antes de os provedores chamarem este método, eles devem garantir que as versões no repositório de metadados reflitam todas as alterações locais, inclusive exclusões. Isso pode ser feito por uma passagem de manutenção de metadados explícita para enumerar itens e atualizar os metadados.
A implementação desta classe, que está disponível através de ISqlSyncMetadataStore, executa as seguintes funções:
Acrescenta alterações ao lote de alterações por ordem de ID global.
Retorna todos os itens que não estão contidos em pSyncKnowledge se eles têm IDs menores que pbLowerEnumerationBound, e atendem aos critérios de filtro especificados em pFilterInfo.
Chama SetLastBatch no lote de alterações retornado quando não há mais alterações a serem enviadas.
Observações para implementadores
Este método deve enumerar, em ordem de classificação de ID de item, as alterações que têm ID de item pbLowerEnumerationBound ou maior e que atendem aos critérios de filtro especificados em pFilterInfo. Isso permite ao Sync Framework determinar quais itens no provedor de destino foram excluídos, mas esquecidos pelo provedor de origem.
Se não houver mais nenhuma alteração a ser enviada depois deste lote, será necessário chamar SetLastBatch no lote de alterações retornado ou Sync Framework chamará IKnowledgeSyncProvider::GetFullEnumerationChangeBatch novamente para recuperar outro lote de alterações.
Para um provedor que envia dados de item juntamente com metadados de alteração de item, pSyncKnowledge pode ser usado para determinar se é necessário enviar dados de item. Os dados de item não precisam ser enviados quando a alteração do item está contida em pSyncKnowledge.