IReplicaMetadata::GetFilteredChangeBatch
Obtient un lot de modifications qui contient les métadonnées des éléments qui ne sont pas contenus dans la connaissance spécifiée du fournisseur de destination et qui sont acceptés par le filtre spécifié.
HRESULT GetFilteredChangeBatch(
DWORD dwBatchSize,
ISyncKnowledge *pSyncKnowledge,
ISyncFilterInfo * pFilterInfo,
IChangeBatchCallback *pCallback,
ISyncChangeBatch ** ppSyncChangeBatch);
Paramètres
- dwBatchSize
[in] Taille du lot à créer.
- pSyncKnowledge
[in] Connaissance du fournisseur de destination.
- pFilterInfo
[in] Informations sur le filtre qui contrôle les éléments qui sont inclus dans le lot de modifications.
- pCallback
[in, unique] Interface de rappel appelée pour déterminer si un élément doit ou non être ajouté au lot.
- ppSyncChangeBatch
[out] Retourne le lot suivant 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::GetChangeBatch lorsqu'une synchronisation filtrée a été spécifiée.
La méthode IChangeBatchCallback::OnAddingItemToBatch de pCallback sera appelée avant que chaque élément ne soit ajouté à un lot. Si la méthode retourne la valeur TRUE dans son paramètre pfShouldIncludeInBatch, l'élément est ajouté au lot ; sinon, il n'est pas ajouté.
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. Cette opération est accomplie par le biais d'une 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 ajoute des modifications au lot de modifications dans l'ordre de l'ID global.
L'implémentation de cette classe qui est disponible via ISqlSyncMetadataStore appelle SetLastBatch sur le lot de modifications retourné quand il n'y a plus de modifications à envoyer.
Remarques à l'attention des implémenteurs
Pour aider un fournisseur qui utilise un ordre d'ID global et a la possibilité d'utiliser des plages, les modifications doivent être énumérées et ajoutées au lot de modifications dans l'ordre de l'ID global. La première modification dans le lot de modifications retourné démarre une nouvelle plage.
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::GetChangeBatch pour récupérer un autre lot de modifications.