IReplicaMetadata2::GetFilteredFullEnumerationItemBatchVersions
Возвращает отфильтрованный пакет изменений, который содержит версии элементов и базовые единицы, хранящиеся в этой реплике, и которые соответствуют элементам и базовым единицам, на которые ссылается пакет изменений, отправленный из другого поставщика в рамках полного перечисления.
HRESULT GetFilteredFullEnumerationItemBatchVersions(
ISyncFullEnumerationChangeBatch * pRemoteSyncChangeBatch,
IChangeBatchCallback * pCallback,
IEnumSyncChanges ** ppLocalVersionsEnum);
Параметры
Аргумент |
Определение |
pRemoteSyncChangeBatch |
[in] Пакет изменений, полученный от другого поставщика, который будет применен к хранилищу элементов, связанному с данной репликой. |
pCallback |
[in, unique] Интерфейс обратного вызова, который вызывается для определения необходимости добавления элемента в пакет. |
ppLocalVersionsEnum |
[out] Возвращает отфильтрованный пакет изменений, который содержит версии элементов и базовые единицы, хранящиеся в этой реплике. |
Возвращаемое значение
S_OK
E_POINTER
Замечания
Этот метод упрощает поставщикам реализацию метода IKnowledgeSyncProvider::ProcessFullEnumerationChangeBatch службы синхронизации, если поставщик назначения фильтрует изменения.
Значения версий в пакете изменений, возвращаемых этим методом, используются объектами применения изменений для обнаружения конфликтов.
Примечания по реализации
Пакет изменений, возвращаемый этим методом, должен содержать по одной записи для каждого элемента, содержащего идентификатор, значение которого находится в диапазоне, верхние границы которого указывают параметр pRemoteSyncChangeBatch, включая записи базовых единиц, за исключением случаев, когда делегатом pCallback указано, что запись включать не нужно. Если элемент существует в хранилище и включен фильтром, то его запись должна содержать сведения о версии для этой реплики. Если элемент, включенный фильтром, не существует, то запись для него должна содержать 0 для его версии, а флаг SYNC_CHANGE_FLAG_DOES_NOT_EXIST должен быть установлен.