Monotone-Parent: 173c16ed57e319da55ef0f43152bfbba829d1119

Monotone-Revision: ea1c783b905b07e028051a8a9d8f7bf4c894b0f2

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-05-31T03:39:36
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2011-05-31 03:39:36 +00:00
parent 0c99e04252
commit a5440bd52d
10 changed files with 299 additions and 70 deletions

View File

@@ -29,6 +29,7 @@
#import <NGExtensions/NSObject+Logs.h>
#import <SOGo/SOGoFolder.h>
#import "MAPIStoreActiveTables.h"
#import "MAPIStoreContext.h"
#import "MAPIStoreFAIMessage.h"
#import "MAPIStoreFAIMessageTable.h"
@@ -80,9 +81,6 @@ Class NSExceptionK, MAPIStoreMessageTableK, MAPIStoreFAIMessageTableK, MAPIStore
folderURL = nil;
context = nil;
activeMessageTables = [NSMutableArray new];
activeFAIMessageTables = [NSMutableArray new];
activeFolderTables = [NSMutableArray new];
}
return self;
@@ -110,9 +108,6 @@ Class NSExceptionK, MAPIStoreMessageTableK, MAPIStoreFAIMessageTableK, MAPIStore
[faiMessageKeys release];
[folderKeys release];
[faiFolder release];
[activeMessageTables release];
[activeFAIMessageTables release];
[activeFolderTables release];
[super dealloc];
}
@@ -165,59 +160,36 @@ Class NSExceptionK, MAPIStoreMessageTableK, MAPIStoreFAIMessageTableK, MAPIStore
- (NSArray *) activeMessageTables
{
return activeMessageTables;
return [[MAPIStoreActiveTables activeTables]
activeTablesForFMID: [self objectId]
andType: MAPISTORE_MESSAGE_TABLE];
}
- (NSArray *) activeFAIMessageTables
{
return activeFAIMessageTables;
return [[MAPIStoreActiveTables activeTables]
activeTablesForFMID: [self objectId]
andType: MAPISTORE_FAI_TABLE];
}
- (NSArray *) activeFolderTables
{
return activeFolderTables;
}
- (NSMutableArray *) _arrayForActiveTable: (MAPIStoreTable *) activeTable
{
NSMutableArray *tablesArray;
if ([activeTable isKindOfClass: MAPIStoreFAIMessageTableK])
tablesArray = activeMessageTables;
else if ([activeTable isKindOfClass: MAPIStoreMessageTableK])
tablesArray = activeMessageTables;
else if ([activeTable isKindOfClass: MAPIStoreFolderTableK])
tablesArray = activeMessageTables;
else
tablesArray = nil;
return tablesArray;
}
- (void) addActiveTable: (MAPIStoreTable *) activeTable
{
[[self _arrayForActiveTable: activeTable] addObject: activeTable];
}
- (void) removeActiveTable: (MAPIStoreTable *) activeTable
{
[[self _arrayForActiveTable: activeTable] removeObject: activeTable];
}
- (void) _cleanupTableCaches: (NSArray *) activeTables
- (void) _cleanupTableCaches: (uint8_t) tableType
{
NSArray *tables;
NSUInteger count, max;
max = [activeTables count];
tables = [[MAPIStoreActiveTables activeTables]
activeTablesForFMID: [self objectId]
andType: tableType];
max = [tables count];
for (count = 0; count < max; count++)
[[activeTables objectAtIndex: count] cleanupCaches];
[[tables objectAtIndex: count] cleanupCaches];
}
- (void) cleanupCaches
{
[self _cleanupTableCaches: activeMessageTables];
[self _cleanupTableCaches: activeFAIMessageTables];
[self _cleanupTableCaches: activeFolderTables];
[self _cleanupTableCaches: MAPISTORE_MESSAGE_TABLE];
[self _cleanupTableCaches: MAPISTORE_FAI_TABLE];
[self _cleanupTableCaches: MAPISTORE_FOLDER_TABLE];
[faiMessageKeys release];
faiMessageKeys = nil;
[messageKeys release];