Condividi tramite


IReplicaMetadata::GetFilteredChangeBatch

Ottiene un batch di modifiche contenente i metadati per elementi non contenuti nella conoscenza specificata dal provider di destinazione e accettati dal filtro specificato.

HRESULT GetFilteredChangeBatch(
  DWORD dwBatchSize,
  ISyncKnowledge *pSyncKnowledge,
  ISyncFilterInfo * pFilterInfo,
  IChangeBatchCallback *pCallback,
  ISyncChangeBatch ** ppSyncChangeBatch);

Parametri

  • dwBatchSize
    [in] Dimensioni del batch da creare.
  • pSyncKnowledge
    [in] Conoscenza del provider di destinazione.
  • pFilterInfo
    [in] Informazioni sul filtro che controlla gli elementi da includere nel batch di modifiche.
  • pCallback
    [in, unique] Interfaccia di callback chiamata per determinare se un elemento deve essere aggiunto al batch.
  • ppSyncChangeBatch
    [out] Restituisce il batch di modifiche successivo.

Valore restituito

  • S_OK

  • E_POINTER

  • E_INVALIDARG se dwBatchSize è 0.

Osservazioni

Questo metodo consente a un provider di sincronizzazione di implementare il relativo metodo IKnowledgeSyncProvider::GetChangeBatch quando è stata specificata una sincronizzazione filtrata.

Il metodo IChangeBatchCallback::OnAddingItemToBatch di pCallback verrà chiamato prima dell'aggiunta di ogni elemento a un batch. Se il metodo restituisce TRUE nel relativo parametro pfShouldIncludeInBatch, l'elemento verrà aggiunto al batch, in caso contrario non verrà aggiunto.

Prima di chiamare questo metodo, i provider devono assicurarsi che le versioni nell'archivio dei metadati riflettano tutte le modifiche locali, incluse le eliminazioni. Questo risultato si ottiene tramite un passaggio di manutenzione esplicito dei metadati per enumerare gli elementi e aggiornare i relativi metadati.

L'implementazione di questa classe disponibile tramite ISqlSyncMetadataStore comporta l'aggiunta delle modifiche al batch di modifiche nell'ordine ID globale.

L'implementazione di questa classe disponibile tramite ISqlSyncMetadataStore comporta la chiamata a SetLastBatch nel batch di modifiche restituito quando non sono più disponibili modifiche da inviare.

Note per gli implementatori

Per assistere un provider che utilizza l'ordinamento ID globale e ha la possibilità di utilizzare gli intervalli, è necessario enumerare le modifiche e aggiungerle al batch di modifiche nell'ordine ID globale. La prima modifica nel batch di modifiche restituito comporta l'inizio di un nuovo intervallo.

Se non sono disponibili altre modifiche da inviare dopo questo batch, è necessario chiamare SetLastBatch nel batch di modifiche restituito. In caso contrario, Sync Framework chiamerà nuovamente IKnowledgeSyncProvider::GetChangeBatch per recuperare un altro batch di modifiche.

Vedere anche

Riferimento

Interfaccia IReplicaMetadata