Partager via


IReplicaMetadata2::GetFilteredFullEnumerationChangeBatch

Obtient un lot de modifications filtré qui contient les métadonnées des éléments dont les ID sont supérieurs ou égaux à la limite inférieure spécifiée, dans le cadre d'une énumération complète.

HRESULT GetFilteredFullEnumerationChangeBatch(
  DWORD dwBatchSize,
  ISyncFilterInfo * pFilterInfo,
  IChangeBatchCallback * pCallback,
  const BYTE * pbLowerFullEnumerationBound,
  ISyncKnowledge * pSyncKnowledge,
  ISyncFullEnumerationChangeBatch ** ppChangeBatch);

Paramètres

  • dwBatchSize
    [in] Taille du lot de modifications à retourner.
  • pFilterInfo
    [in] Objet ISyncFilterInfo qui représente des informations relatives à un filtre qui peut être utilisé pour contrôler les modifications incluses dans un lot de modifications.
  • pCallback
    [in, unique] Objet IChangeBatchCallback utilisé pour déterminer s'il faut inclure un élément dans un lot de modifications.
  • pbLowerFullEnumerationBound
    [in] Limite inférieure pour les ID d'élément. Cette méthode retourne les modifications dont les ID sont supérieurs ou égaux à cet ID s'ils satisfont aux critères de filtre spécifiés dans pFilterInfo.
  • pSyncKnowledge
    [in] Connaissance du réplica de destination.
  • ppChangeBatch
    [out] Retourne le lot de modifications.

Valeur de retour

  • S_OK.

  • E_POINTER.

  • E_INVALIDARG lorsque dwBatchSize est égal à 0.

Notes

Cette méthode permet à un fournisseur de synchronisation d'implémenter sa méthode IKnowledgeSyncProvider::GetFullEnumerationChangeBatch lorsque le filtrage d'éléments est utilisé. Cette méthode est appelée pendant la récupération d'une connaissance oubliée.

Avant que les fournisseurs n'appellent cette méthode, ils doivent s'assurer que les versions dans le magasin des métadonnées reflètent toutes les modifications locales, y compris les suppressions. Cela est accompli par le biais d'un passe de maintenance des métadonnées explicite pour énumérer des éléments et mettre à jour leurs métadonnées.

L'implémentation de cette classe qui est disponible via ISqlSyncMetadataStore effectue les fonctions suivantes :

  • Ajoute des modifications au lot de modifications dans l'ordre de l'ID global.

  • Retourne tous les éléments qui ne sont pas contenus dans pSyncKnowledge s'ils leurs ID sont inférieurs à pbLowerEnumerationBound, et s'ils répondent aux critères de filtre spécifiés dans pFilterInfo.

  • Appelle SetLastBatch sur le lot de modifications retourné lorsqu'il n'y a plus de modifications à envoyer.

Remarques à l'attention des implémenteurs

Cette méthode doit énumérer, dans l'ordre trié par ID d'élément, les modifications qui ont un ID d'élément de pbLowerEnumerationBound ou d'une valeur supérieure et qui répondent aux critères de filtre spécifiés dans pFilterInfo. Cela permet à Sync Framework d'identifier les éléments sur le fournisseur de destination qui ont été supprimés, mais oubliés par le fournisseur de source.

S'il n'y a plus de modifications à envoyer après ce lot, SetLastBatch doit être appelée sur le lot de modifications retourné ou Sync Framework appellera à nouveau IKnowledgeSyncProvider::GetFullEnumerationChangeBatch pour récupérer un autre lot de modifications.

Pour un fournisseur qui envoie des données d'élément avec des métadonnées de modification d'élément, pSyncKnowledge peut être utilisé pour déterminer s'il est nécessaire ou non d'envoyer des données d'élément. Il n'est pas nécessaire d'envoyer les données d'élément lorsque la modification d'élément est contenue dans pSyncKnowledge.

Voir aussi

Référence

Interface IReplicaMetadata2