API Reference | developer.brewmp.com API Reference | developer.brewmp.com

Developer

API Reference

PIM_IRECORDSTORE_GETCHANGESSINCE()

Brew Release
Brew MP 1.0.2
See Also
pim_IRecordStore_OnChange() pim_IRecordStore Error Codes
Description
This function returns a list of record identifiers for all the records that changed since the provided sequence number. The client may use the returned sequence number to create a baseline from which to determine subsequent changes. Once the client has saved a baseline sequence number, the client may use that for the next call to pim_IRecordStore_GetChangesSince() to determine which records have been changed since the baseline. The sequence number is persistent across power cycles.
The implementation of pim_IRecordStore_GetChangesSince() will attempt to provide information about record IDs that were added, updated and deleted since the provided sequence number. Clients can start with SeqNum 0 and obtain CurrSeqNum along with the corresponding added, updated and deleted record IDs. Clients should then use CurrSeqNum as the baseline SeqNum for the next call to pim_IRecordStore_GetChangesSince() and so on and so forth. To efficiently find out subsequent changes clients must save the record IDs that they obtain from every call to pim_IRecordStore_GetChangesSince(). For performance gains, it is recommened that SeqNum and record IDs be stored in persistent storage so that the next time the application is started, these values can be used as the baseline.
The client must provide valid parameters for AddedIDs, UpdatedIDs and DeletedIDs. UnchangedIDs is optional unless the previous call to pim_IRecordStore_GetChangesSince() returned pim_IRecordStore_ESTALESEQNUM. If the implementation cannot provide information about deleted records corresponding to SeqNum as denoted by the pim_IRecordStore_ESTALESEQNUM return error code, the client must provide valid parameters for AddedIDs, UpdatedIDs and UnchangedIDs to compare with their saved sets of record IDs and efficiently find out records that were added, updated and deleted.
Interface
Prototype
  •    AEEResult pim_IRecordStore_GetChangesSince(pim_IRecordStore* _pif, 
                                                  int64* CurrSeqNum, 
                                                  int64 SeqNum, 
                                                  pim_IRecordStore_RecordID* AddedIDs, 
                                                  int AddedIDsLen, 
                                                  int* AddedIDsLenReq, 
                                                  pim_IRecordStore_RecordID* UpdatedIDs, 
                                                  int UpdatedIDsLen, 
                                                  int* UpdatedIDsLenReq, 
                                                  pim_IRecordStore_RecordID* DeletedIDs, 
                                                  int DeletedIDsLen, 
                                                  int* DeletedIDsLenReq, 
                                                  pim_IRecordStore_RecordID* UnchangedIDs, 
                                                  int UnchangedIDsLen, 
                                                  int* UnchangedIDsLenReq)
    
Return
  • AEE_SUCCESS on successful changed record IDs retrieval
    pim_IRecordStore_EINVALIDSEQNUM if invalid sequence number is passed in.
    pim_IRecordStore_ESTALESEQNUM if SeqNum is older than what the implementation knows about.
    AEE_EWOULDBLOCK if the record store is blocked from accessing records.
    Error code otherwise
Side Effect
  • None.
Comments
None