ItemListFilterInfo Constructor (SyncIdFormatGroup)
Initializes a new instance of the ItemListFilterInfo class that contains the specified ID format schema.
Assembly: Microsoft.Synchronization (in Microsoft.Synchronization.dll)
| Exception | Condition |
|---|---|
| ArgumentNullException | idFormats is a nullptr. |
The following example creates an ItemListFilterInfo object and uses it, along with an implementation of ReplicaMetadata::ItemFilterCallback to retrieve a filtered change batch by using GetFilteredChangeBatch. The implementation of ReplicaMetadata::ItemFilterCallback is also included.
Public Overrides Function GetChangeBatch(ByVal batchSize As UInteger, ByVal destinationKnowledge As SyncKnowledge, ByRef changeDataRetriever As Object) As ChangeBatch ' Return this object as the IChangeDataRetriever object that is called to retrieve item data. changeDataRetriever = Me ' Use the metadata storage service to get a batch of changes. Dim retrievedBatch As ChangeBatch If _isFiltered Then ' If a filter is set, get a filtered change batch from the metadata storage service. ' The BirthdateFilterCallback method indicates whether an item passes the filter. Dim filterInfo As New ItemListFilterInfo(IdFormats) retrievedBatch = _ContactStore.ContactReplicaMetadata.GetFilteredChangeBatch(batchSize, destinationKnowledge, filterInfo, AddressOf BirthdateFilterCallback) Else retrievedBatch = _ContactStore.ContactReplicaMetadata.GetChangeBatch(batchSize, destinationKnowledge) End If Return retrievedBatch End Function
Public Function BirthdateFilterCallback(ByVal itemMeta As ItemMetadata) As Boolean ' An item passes the filter only if its birthdate field is less than the maximum birthdate ' specified by the filter. Return (_ContactStore.ContactList(itemMeta.GlobalId).Birthdate < _maxBirthdateFilter) End Function
public override ChangeBatch GetChangeBatch(uint batchSize, SyncKnowledge destinationKnowledge, out object changeDataRetriever) { // Return this object as the IChangeDataRetriever object that is called to retrieve item data. changeDataRetriever = this; // Use the metadata storage service to get a batch of changes. ChangeBatch retrievedBatch; if (_isFiltered) { // If a filter is set, get a filtered change batch from the metadata storage service. // The BirthdateFilterCallback method indicates whether an item passes the filter. ItemListFilterInfo filterInfo = new ItemListFilterInfo(IdFormats); retrievedBatch = _ContactStore.ContactReplicaMetadata.GetFilteredChangeBatch(batchSize, destinationKnowledge, filterInfo, BirthdateFilterCallback); } else { retrievedBatch = _ContactStore.ContactReplicaMetadata.GetChangeBatch(batchSize, destinationKnowledge); } return retrievedBatch; }
public bool BirthdateFilterCallback(ItemMetadata itemMeta) { // An item passes the filter only if its birthdate field is less than the maximum birthdate // specified by the filter. return (_ContactStore.ContactList[itemMeta.GlobalId].Birthdate < _maxBirthdateFilter); }
Show: