Поделиться через


IReplicaMetadata::GetFullEnumerationChangeBatch

Возвращает пакет изменений, содержащий метаданные элементов, значения идентификаторов которых больше или равны указанной нижней границе, как часть полного перечисления.

HRESULT GetFullEnumerationChangeBatch(
  DWORD dwBatchSize,
  const BYTE * pbLowerEnumerationBound,
  ISyncKnowledge * pSyncKnowledge,
  ISyncFullEnumerationChangeBatch ** ppSyncChangeBatch);

Параметры

  • dwBatchSize
    [in] Размер возвращаемого пакета изменений.
  • pbLowerEnumerationBound
    [in] Нижняя граница для значений идентификаторов элементов. Этот метод возвращает изменения с идентификаторами, значения которых больше или равны этому идентификатору.
  • pSyncKnowledge
    [in] Набор знаний реплики назначения.
  • ppSyncChangeBatch
    [out] Возвращает пакет изменений.

Возвращаемое значение

  • S_OK

  • E_POINTER

  • E_INVALIDARG, если значение dwBatchSize равно 0.

Замечания

Этот метод упрощает реализацию метода IKnowledgeSyncProvider::GetFullEnumerationChangeBatch службы синхронизации. Этот метод вызывается в процессе восстановления утраченного набора знаний.

Перед вызовом этого метода поставщик должен убедиться, что версии в хранилище метаданных отражают все локальные изменения, включая операции удаления. Это достигается с помощью явного этапа обслуживания метаданных, в котором перечисляются элементы и обновляются их метаданные.

Реализация этого класса, которая возможна через ISqlSyncMetadataStore, добавляет изменения в пакет изменений в порядке глобальных идентификаторов.

Реализация этого класса, которая доступна через класс IsqlSyncMetadataStore,, также возвращает все элементы, содержащие идентификаторы, значения которых меньше значения параметра pbLowerEnumerationBound и которые не содержатся в параметре pSyncKnowledge.

Реализация этого класса, которая возможна через ISqlSyncMetadataStore, вызывает метод SetLastBatch для возвращаемого пакета изменений, когда больше нет изменений для отправки.

Примечания по реализации

Этот метод должен перечислить (с соблюдением порядка отсортированных идентификаторов элементов) каждое из изменений с идентификатором элемента, большим или равным значению pbLowerEnumerationBound. Это позволяет платформе Sync Framework определить, какие из элементов поставщика назначения были удалены, но при этом утрачены поставщиком источника.

Если больше нет изменений для отправки после этого пакета, необходимо вызвать метод SetLastBatch применительно к возвращаемому пакету изменений, так как в противном случае Sync Framework снова вызовет метод IKnowledgeSyncProvider::GetFullEnumerationChangeBatch для получения следующего пакета изменений.

Для поставщика, отправляющего данные элемента вместе с метаданными изменения элемента, параметр pSyncKnowledge может использоваться для определения необходимости отправки данных элемента. Если изменение элемента содержится в параметре pSyncKnowledge, то данные элемента отправлять не нужно.

См. также

Справочник

Интерфейс IReplicaMetadata