From 5e2453f3c45429f8055d35f98cc17a49a537f49b Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 12 Oct 2012 17:42:43 -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..1f9700c21 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: (uint64_t) max; /* subclass methods */ + (NSString *) MAPIModuleName; diff --git a/OpenChange/MAPIStoreContext.m b/OpenChange/MAPIStoreContext.m index 60fffa2fd..68bdd3df0 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: (uint64_t) max +{ + TALLOC_CTX *memCtx; + NSMutableArray *newChangeNumbers; + uint64_t count; + struct UI8Array_r *numbers; + NSString *newNumber; + + memCtx = talloc_zero(NULL, TALLOC_CTX); + newChangeNumbers = [NSMutableArray arrayWithCapacity: max]; + + if (openchangedb_get_new_changeNumbers (connInfo->oc_ctx, + memCtx, max, &numbers) + != MAPI_E_SUCCESS || numbers->cValues != max) + abort (); + for (count = 0; count < max; count++) + { + newNumber + = [NSString stringWithUnsignedLongLong: numbers->lpui8[count]]; + [newChangeNumbers addObject: newNumber]; + } + + talloc_free (memCtx); + + return newChangeNumbers; +} + /* subclasses */ + (NSString *) MAPIModuleName