merge of '70051a0aa508a30cbd35bb7376efce8a3d826fba'

and 'cf0bf1453ddf93b100f4c44465b8b4ede251cf8e'

Monotone-Parent: 70051a0aa508a30cbd35bb7376efce8a3d826fba
Monotone-Parent: cf0bf1453ddf93b100f4c44465b8b4ede251cf8e
Monotone-Revision: c0c2dbe64a9eb612995c7e7a7f9136a8f379a460

Monotone-Author: flachapelle@inverse.ca
Monotone-Date: 2011-07-13T16:07:26
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Francis Lachapelle
2011-07-13 16:07:26 +00:00
5 changed files with 15 additions and 311 deletions
+13
View File
@@ -7,6 +7,11 @@
* UI/WebServerResources/generic.js (_showAlertDialog): added fade
effect when showing or hiding a dialog box.
2011-07-13 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreSOGo.m (sogo_op_get_fid_by_name): removed
obsolete method.
2011-07-12 Francis Lachapelle <flachapelle@inverse.ca>
* UI/MailerUI/UIxMailFolderActions.m (-batchDeleteAction): we
@@ -29,6 +34,14 @@
2011-07-12 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreFSMessage.m
(+getAvailableProperties:inMemCtx:): added memCtx parameter.
* OpenChange/MAPIStoreSOGo.m: (sogo_op_get_table_property)
(sogo_op_get_available_table_properties)
(sogo_op_set_restrictions,sogo_op_set_sort_order): removed
obsolete methods.
* OpenChange/MAPIStoreCalendarMessageTable.m,
OpenChange/MAPIStoreContactsMessageTable.m,
OpenChange/MAPIStoreFAIMessageTable.m,
-23
View File
@@ -107,26 +107,6 @@
withTableType: (uint8_t) tableType
inMemCtx: (TALLOC_CTX *) memCtx;
- (int) getFID: (uint64_t *) fid
byName: (const char *) foldername
inParentFID: (uint64_t) parent_fid;
- (int) setRestrictions: (const struct mapi_SRestriction *) res
withFID: (uint64_t) fid
andTableType: (uint8_t) tableType
getTableStatus: (uint8_t *) tableStatus;
- (int) setSortOrder: (const struct SSortOrderSet *) set
withFID: (uint64_t) fid andTableType: (uint8_t) type
getTableStatus: (uint8_t *) tableStatus;
- (enum MAPISTATUS) getTableProperty: (void **) data
withTag: (enum MAPITAGS) proptag
atPosition: (uint32_t) pos
withTableType: (uint8_t) tableType
andQueryType: (enum table_query_type) queryType
inFID: (uint64_t) fid
inMemCtx: (TALLOC_CTX *) memCtx;
- (int) mkDir: (struct SRow *) aRow
withFID: (uint64_t) fid
inParentFID: (uint64_t) parentFID;
@@ -153,9 +133,6 @@
inRow: (struct SRow *) aRow
withMID: (uint64_t) fmid
inMemCtx: (TALLOC_CTX *) memCtx;
- (int) getAvailableProperties: (struct SPropTagArray **) propertiesP
ofTableType: (uint8_t) type
inMemCtx: (TALLOC_CTX *) memCtx;
- (int) setPropertiesWithFMID: (uint64_t) fmid
ofTableType: (uint8_t) tableType
inRow: (struct SRow *) aRow;
-127
View File
@@ -644,123 +644,6 @@ _prepareContextClass (struct mapistore_context *newMemCtx,
// [self logWithFormat: @"%@ --> %@", resStr, MAPIStringForRestrictionState (state)];
// }
- (int) setRestrictions: (const struct mapi_SRestriction *) res
withFID: (uint64_t) fid
andTableType: (uint8_t) tableType
getTableStatus: (uint8_t *) tableStatus
{
MAPIStoreTable *table;
[self errorWithFormat: @"%s: obsolete method", __FUNCTION__];
table = [self _tableForFID: fid andTableType: tableType];
[table setRestrictions: res];
// FIXME: we should not flush the caches if the restrictions matches
[table cleanupCaches];
return MAPISTORE_SUCCESS;
}
- (int) setSortOrder: (const struct SSortOrderSet *) set
withFID: (uint64_t) fid andTableType: (uint8_t) type
getTableStatus: (uint8_t *) tableStatus
{
MAPIStoreTable *table;
[self errorWithFormat: @"%s: obsolete method", __FUNCTION__];
table = [self _tableForFID: fid andTableType: type];
[table setSortOrder: set];
[table cleanupCaches];
return MAPISTORE_SUCCESS;
}
- (enum MAPISTATUS) getTableProperty: (void **) data
withTag: (enum MAPITAGS) propTag
atPosition: (uint32_t) pos
withTableType: (uint8_t) tableType
andQueryType: (enum table_query_type) queryType
inFID: (uint64_t) fid
inMemCtx: (TALLOC_CTX *) memCtx
{
NSString *folderURL;
MAPIStoreTable *table;
MAPIStoreObject *object;
const char *propName;
int rc;
// [self errorWithFormat: @"%s: obsolete method", __FUNCTION__];
folderURL = [mapping urlFromID: fid];
if (folderURL)
{
table = [self _tableForFID: fid andTableType: tableType];
*data = NULL;
object = [table childAtRowID: pos forQueryType: queryType];
if (object)
{
rc = [object getProperty: data withTag: propTag inMemCtx: memCtx];
if (rc == MAPISTORE_ERR_NOT_FOUND)
rc = MAPI_E_NOT_FOUND;
else if (rc == MAPISTORE_ERR_NO_MEMORY)
rc = MAPI_E_NOT_ENOUGH_MEMORY;
else if (rc == MAPISTORE_SUCCESS && *data == NULL)
{
propName = get_proptag_name (propTag);
if (!propName)
propName = "<unknown>";
[self errorWithFormat: @"both 'success' and NULL data"
@" returned for proptag %s(0x%.8x)",
propName, propTag];
rc = MAPI_E_NOT_FOUND;
}
}
else
rc = MAPI_E_INVALID_OBJECT;
}
else
{
[self errorWithFormat: @"No url found for FID: %lld", fid];
rc = MAPI_E_INVALID_OBJECT;
}
return rc;
}
- (int) getAvailableProperties: (struct SPropTagArray **) propertiesP
ofTableType: (uint8_t) type
inMemCtx: (TALLOC_CTX *) memCtx
{
int rc = MAPISTORE_SUCCESS;
switch (type)
{
case MAPISTORE_FOLDER_TABLE:
[[baseFolder class] getAvailableProperties: propertiesP inMemCtx: memCtx];
break;
case MAPISTORE_MESSAGE_TABLE:
[[baseFolder messageClass] getAvailableProperties: propertiesP inMemCtx: memCtx];
break;
case MAPISTORE_FAI_TABLE:
[MAPIStoreFAIMessage getAvailableProperties: propertiesP inMemCtx: memCtx];
break;
case MAPISTORE_RULE_TABLE:
[self errorWithFormat: @"%s: rules not handled yet",
__PRETTY_FUNCTION__];
rc = MAPISTORE_ERROR;
break;
case MAPISTORE_ATTACHMENT_TABLE:
[self errorWithFormat: @"%s: attachments not handled yet",
__PRETTY_FUNCTION__];
rc = MAPISTORE_ERROR;
break;
}
return rc;
}
- (int) openMessage: (struct mapistore_message *) msg
withMID: (uint64_t) mid
inFID: (uint64_t) fid
@@ -1102,16 +985,6 @@ _prepareContextClass (struct mapistore_context *newMemCtx,
return rc;
}
- (int) getFID: (uint64_t *) fid
byName: (const char *) foldername
inParentFID: (uint64_t) parent_fid
{
[self logWithFormat: @"METHOD '%s' (%d) -- foldername: %s, parent_fid: %lld",
__FUNCTION__, __LINE__, foldername, parent_fid];
return MAPISTORE_ERROR;
}
- (int) setPropertiesWithFMID: (uint64_t) fmid
ofTableType: (uint8_t) tableType
inRow: (struct SRow *) aRow
+2 -1
View File
@@ -38,6 +38,7 @@
@implementation MAPIStoreFSMessage
+ (int) getAvailableProperties: (struct SPropTagArray **) propertiesP
inMemCtx: (TALLOC_CTX *) memCtx
{
struct SPropTagArray *properties;
NSUInteger count;
@@ -45,7 +46,7 @@
0x683f0102, 0x68410003, 0x68420102,
0x68450102, 0x68460003 };
properties = talloc_zero (NULL, struct SPropTagArray);
properties = talloc_zero (memCtx, struct SPropTagArray);
properties->cValues = MAPIStoreSupportedPropertiesCount + 8;
properties->aulPropTag = talloc_array (NULL, enum MAPITAGS,
MAPIStoreSupportedPropertiesCount + 8);
-160
View File
@@ -234,31 +234,6 @@ sogo_get_path(void *private_data, TALLOC_CTX *mem_ctx,
return rc;
}
static int
sogo_op_get_fid_by_name(void *private_data, uint64_t parent_fid, const char* foldername, uint64_t *fid)
{
NSAutoreleasePool *pool;
sogo_context *cContext;
MAPIStoreContext *context;
int rc;
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
pool = [NSAutoreleasePool new];
cContext = private_data;
context = cContext->objcContext;
[context setupRequest];
rc = [context getFID: fid byName: foldername inParentFID: parent_fid];
[context tearDownRequest];
[pool release];
return rc;
}
/**
\details Create a folder in the sogo backend
@@ -426,68 +401,6 @@ sogo_op_readdir_count(void *private_data,
return rc;
}
static int
sogo_op_get_table_property(void *private_data,
TALLOC_CTX *mem_ctx,
uint64_t fid,
uint8_t table_type,
enum table_query_type query_type,
uint32_t pos,
uint32_t proptag,
void **data)
{
NSAutoreleasePool *pool;
sogo_context *cContext;
MAPIStoreContext *context;
int rc;
// DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
pool = [NSAutoreleasePool new];
cContext = private_data;
context = cContext->objcContext;
[context setupRequest];
rc = [context getTableProperty: data withTag: proptag atPosition: pos
withTableType: table_type andQueryType: query_type
inFID: fid inMemCtx: mem_ctx];
[context tearDownRequest];
[pool release];
return rc;
}
static int
sogo_op_get_available_table_properties(void *private_data, TALLOC_CTX *mem_ctx,
uint8_t type,
struct SPropTagArray **propertiesP)
{
NSAutoreleasePool *pool;
sogo_context *cContext;
MAPIStoreContext *context;
int rc;
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
pool = [NSAutoreleasePool new];
cContext = private_data;
context = cContext->objcContext;
[context setupRequest];
rc = [context getAvailableProperties: propertiesP
ofTableType: type
inMemCtx: mem_ctx];
[context tearDownRequest];
[pool release];
return rc;
}
static int
sogo_op_openmessage(void *private_data,
TALLOC_CTX *mem_ctx,
@@ -718,74 +631,6 @@ sogo_op_deletemessage(void *private_data,
return rc;
}
static int
sogo_op_set_restrictions (void *private_data, uint64_t fid, uint8_t type,
struct mapi_SRestriction *res, uint8_t *tableStatus)
{
NSAutoreleasePool *pool;
sogo_context *cContext;
MAPIStoreContext *context;
int rc;
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
pool = [NSAutoreleasePool new];
cContext = private_data;
context = cContext->objcContext;
if (context)
{
[context setupRequest];
rc = [context setRestrictions: res
withFID: fid andTableType: type
getTableStatus: tableStatus];
[context tearDownRequest];
[pool release];
}
else
{
NSLog (@" UNEXPECTED WEIRDNESS: RECEIVED NO CONTEXT");
rc = MAPI_E_NOT_FOUND;
}
return rc;
}
static int
sogo_op_set_sort_order (void *private_data, uint64_t fid, uint8_t type,
struct SSortOrderSet *set, uint8_t *tableStatus)
{
NSAutoreleasePool *pool;
sogo_context *cContext;
MAPIStoreContext *context;
int rc;
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
pool = [NSAutoreleasePool new];
cContext = private_data;
context = cContext->objcContext;
if (context)
{
[context setupRequest];
rc = [context setSortOrder: set
withFID: fid andTableType: type
getTableStatus: tableStatus];
[context tearDownRequest];
[pool release];
}
else
{
NSLog (@" UNEXPECTED WEIRDNESS: RECEIVED NO CONTEXT");
rc = MAPI_E_NOT_FOUND;
}
return rc;
}
/**
proof of concept
*/
@@ -1228,17 +1073,12 @@ int mapistore_init_backend(void)
backend.release_record = sogo_release_record;
backend.get_path = sogo_get_path;
backend.op_get_fid_by_name = sogo_op_get_fid_by_name;
backend.op_mkdir = sogo_op_mkdir;
backend.op_rmdir = sogo_op_rmdir;
backend.op_opendir = sogo_op_opendir;
backend.op_closedir = sogo_op_closedir;
backend.op_readdir_count = sogo_op_readdir_count;
backend.op_get_table_property = sogo_op_get_table_property;
backend.op_get_available_table_properties = sogo_op_get_available_table_properties;
backend.op_set_restrictions = sogo_op_set_restrictions;
backend.op_set_sort_order = sogo_op_set_sort_order;
backend.op_openmessage = sogo_op_openmessage;
backend.op_createmessage = sogo_op_createmessage;
backend.op_modifyrecipients = sogo_op_modifyrecipients;