Freigeben über


IReplicaMetadata::GetFilteredChangeBatch

Ruft einen Änderungsbatch mit Elementmetadaten für Elemente ab, die nicht im angegebenen Wissen des Zielanbieters enthalten sind und den angegebenen Filter passieren.

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

Parameter

  • dwBatchSize
    [in] Die Größe des zu erstellenden Batches.
  • pSyncKnowledge
    [in] Das Wissen des Zielanbieters.
  • pFilterInfo
    [in] Informationen über den Filter, der steuert, welche Elemente in den Änderungsbatch aufgenommen werden.
  • pCallback
    [in, unique] Eine Rückrufschnittstelle, die aufgerufen wird, um zu bestimmen, ob ein Element dem Batch hinzugefügt werden soll.
  • ppSyncChangeBatch
    [out] Gibt den nächsten Batch von Änderungen zurück.

Rückgabewert

  • S_OK

  • E_POINTER

  • E_INVALIDARG, wenn dwBatchSize 0 ist.

Hinweise

Diese Methode unterstützt einen Synchronisierungsanbieter bei der Implementierung seiner IKnowledgeSyncProvider::GetChangeBatch-Methode, wenn eine gefilterte Synchronisierung angegeben wurde.

Die IChangeBatchCallback::OnAddingItemToBatch-Methode von pCallback wird vor dem Hinzufügen jedes Elements zu einem Batch aufgerufen. Wenn die Methode in ihrem pfShouldIncludeInBatch-Parameter TRUE zurückgibt, wird das Element dem Batch hinzugefügt; andernfalls wird es nicht hinzugefügt.

Vor dem Aufrufen dieser Methode müssen Anbieter sicherstellen, dass die Versionen im Metadatenspeicher alle lokalen Änderungen, einschließlich Löschungen, berücksichtigen. Dies wird durch einen expliziten Metadatenverwaltungsdurchlauf erreicht, in dem Elemente aufgelistet und ihre Metadaten aktualisiert werden.

Die Implementierung dieser Klasse, die durch ISqlSyncMetadataStore zur Verfügung gestellt wird, fügt dem Änderungsbatch Änderungen geordnet nach der globalen ID hinzu.

Die Implementierung dieser Klasse, die durch ISqlSyncMetadataStore zur Verfügung gestellt wird, ruft SetLastBatch für den zurückgegebenen Änderungsbatch auf, wenn keine zu sendenden Änderungen mehr vorhanden sind.

Hinweise für Implementierer

Um einen Anbieter, der Sortierungen nach globaler ID durchführt und Bereiche verwenden kann, zu unterstützen, sollten Änderungen in der Reihenfolge ihrer globalen ID aufgelistet und dem Änderungsbatch hinzugefügt werden. Durch die erste Änderung im zurückgegebenen Änderungsbatch wird ein neuer Bereich gestartet.

Wenn nach diesem Batch keine zu sendenden Änderungen mehr vorliegen, muss SetLastBatch für den zurückgegebenen Änderungsbatch aufgerufen werden. Andernfalls ruft Sync Framework erneut IKnowledgeSyncProvider::GetChangeBatch auf, um einen weiteren Änderungsbatch abzurufen.

Siehe auch

Verweis

IReplicaMetadata-Schnittstelle