From ce4084e5285b353afa9fc81e47389f9927364d17 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 12 Oct 2012 16:55:27 -0400 Subject: [PATCH] getNewChangeNumbers: new wrapper for openchangedb_get_new_changeNumbers --- OpenChange/MAPIStoreContext.h | 1 + OpenChange/MAPIStoreContext.m | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/OpenChange/MAPIStoreContext.h b/OpenChange/MAPIStoreContext.h index d57ffeb74..6d533c79d 100644 --- a/OpenChange/MAPIStoreContext.h +++ b/OpenChange/MAPIStoreContext.h @@ -104,6 +104,7 @@ - (uint64_t) idForObjectWithKey: (NSString *) key inFolderURL: (NSString *) folderURL; - (uint64_t) getNewChangeNumber; +- (NSArray *) getNewChangeNumbers: (NSUInteger) max; /* subclass methods */ + (NSString *) MAPIModuleName; diff --git a/OpenChange/MAPIStoreContext.m b/OpenChange/MAPIStoreContext.m index 60fffa2fd..b012e000f 100644 --- a/OpenChange/MAPIStoreContext.m +++ b/OpenChange/MAPIStoreContext.m @@ -27,6 +27,7 @@ #import #import +#import #import #import @@ -558,6 +559,33 @@ static inline NSURL *CompleteURLFromMapistoreURI (const char *uri) return newVersionNumber; } +- (NSArray *) getNewChangeNumbers: (NSUInteger) max +{ + TALLOC_CTX *memCtx; + struct UI8Array_r *changeNumbers; + NSUInteger count; + NSMutableArray *newChangeNumbers; + NSString *newChangeNumber; + + memCtx = talloc_zero(NULL, TALLOC_CTX); + + if (openchangedb_get_new_changeNumbers (connInfo->oc_ctx, + memCtx, max, &changeNumbers) + != MAPI_E_SUCCESS || changeNumbers->cValues != max) + abort (); + + newChangeNumbers = [NSMutableArray arrayWithCapacity: max]; + for (count = 0; count < max; count++) + { + newChangeNumber = [NSString stringWithUnsignedLongLong: changeNumbers->lpui8[count]]; + [newChangeNumbers addObject: newChangeNumber]; + } + + talloc_free (memCtx); + + return newChangeNumbers; +} + /* subclasses */ + (NSString *) MAPIModuleName