mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-10-13 07:47:12 +00:00
Monotone-Parent: 3fdbf80f4c1de08138ff9435f54fd9f663ef5b8f
Monotone-Revision: 3bc92406543042dce09f1c096eb8a19107b42eb2 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-07-20T14:36:05 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
1 parent
7bb437021a
commit
63c2d62b0b
5 files changed
+66
-2
No files matched your search
@@ -87,6 +87,22 @@
|
||||
|
||||
@implementation MAPIStoreCalendarMessage
|
||||
|
||||
+ (enum mapistore_error) getAvailableProperties: (struct SPropTagArray **) propertiesP
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
BOOL listedProperties[65536];
|
||||
NSUInteger count;
|
||||
|
||||
memset (listedProperties, NO, 65536 * sizeof (BOOL));
|
||||
[super getAvailableProperties: propertiesP inMemCtx: memCtx];
|
||||
for (count = 0; count < (*propertiesP)->cValues; count++)
|
||||
listedProperties[(*propertiesP)->aulPropTag[count] >> 16] = YES;
|
||||
[MAPIStoreAppointmentWrapper fillAvailableProperties: *propertiesP
|
||||
withExclusions: listedProperties];
|
||||
|
||||
return MAPISTORE_SUCCESS;
|
||||
}
|
||||
|
||||
- (id) initWithSOGoObject: (id) newSOGoObject
|
||||
inContainer: (MAPIStoreObject *) newFolder
|
||||
{
|
||||
|
||||
@@ -76,6 +76,7 @@ static Class NSExceptionK, MAPIStoreFolderK;
|
||||
parentContainersBag = [NSMutableArray new];
|
||||
container = nil;
|
||||
properties = [NSMutableDictionary new];
|
||||
proxies = [NSMutableArray new];
|
||||
}
|
||||
|
||||
// [self logWithFormat: @"-init"];
|
||||
@@ -96,6 +97,7 @@ static Class NSExceptionK, MAPIStoreFolderK;
|
||||
- (void) dealloc
|
||||
{
|
||||
// [self logWithFormat: @"-dealloc"];
|
||||
[proxies release];
|
||||
[properties release];
|
||||
[parentContainersBag release];
|
||||
[container release];
|
||||
@@ -203,11 +205,18 @@ static Class NSExceptionK, MAPIStoreFolderK;
|
||||
- (BOOL) canGetProperty: (enum MAPITAGS) propTag
|
||||
{
|
||||
uint16_t propValue;
|
||||
BOOL canGetProperty;
|
||||
NSUInteger count, max;
|
||||
|
||||
propValue = (propTag & 0xffff0000) >> 16;
|
||||
|
||||
return (classGetters[propValue]
|
||||
|| [properties objectForKey: MAPIPropertyKey (propTag)]);
|
||||
canGetProperty = (classGetters[propValue]
|
||||
|| [properties objectForKey: MAPIPropertyKey (propTag)]);
|
||||
max = [proxies count];
|
||||
for (count = 0; !canGetProperty && count < max; count++)
|
||||
canGetProperty = [[proxies objectAtIndex: count] canGetProperty: propTag];
|
||||
|
||||
return canGetProperty;
|
||||
}
|
||||
|
||||
- (int) getProperties: (struct mapistore_property_data *) data
|
||||
|
||||
@@ -63,6 +63,9 @@ struct MAPIStoreTallocWrapper
|
||||
|
||||
+ (enum mapistore_error) getAvailableProperties: (struct SPropTagArray **) propertiesP
|
||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||
+ (void) fillAvailableProperties: (struct SPropTagArray *) properties
|
||||
withExclusions: (BOOL *) exclusions;
|
||||
|
||||
- (enum mapistore_error) getAvailableProperties: (struct SPropTagArray **) propertiesP
|
||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||
- (BOOL) canGetProperty: (enum MAPITAGS) propTag;
|
||||
|
||||
@@ -201,6 +201,30 @@ MAPIStoreTallocWrapperDestroy (void *data)
|
||||
return MAPISTORE_SUCCESS;
|
||||
}
|
||||
|
||||
+ (void) fillAvailableProperties: (struct SPropTagArray *) properties
|
||||
withExclusions: (BOOL *) exclusions
|
||||
{
|
||||
TALLOC_CTX *localMemCtx;
|
||||
struct SPropTagArray *subProperties;
|
||||
uint16_t propId;
|
||||
NSUInteger count;
|
||||
|
||||
localMemCtx = talloc_zero (NULL, TALLOC_CTX);
|
||||
[self getAvailableProperties: &subProperties inMemCtx: localMemCtx];
|
||||
for (count = 0; count < subProperties->cValues; count++)
|
||||
{
|
||||
propId = (subProperties->aulPropTag[count] >> 16);
|
||||
if (!exclusions[propId])
|
||||
{
|
||||
properties->aulPropTag[properties->cValues]
|
||||
= subProperties->aulPropTag[count];
|
||||
properties->cValues++;
|
||||
exclusions[propId] = YES;
|
||||
}
|
||||
}
|
||||
talloc_free (localMemCtx);
|
||||
}
|
||||
|
||||
- (enum mapistore_error) getAvailableProperties: (struct SPropTagArray **) propertiesP
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user