Monotone-Parent: 8ec67206fe2e60d10c9dd420d14aeb136a46afc8

Monotone-Revision: d3347c857a352227561f6e22c205b089a223ee88

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-06-07T00:02:54
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2011-06-07 00:02:54 +00:00
parent 26ce606830
commit bf3e4fe3f3
4 changed files with 63 additions and 0 deletions

View File

@ -4,6 +4,8 @@
(sogo_pocop_get_available_table_properties): now takes a
SPropTagArray ** argument.
(sogo_pocop_get_available_properties): same as above.
(sogo_op_get_available_table_properties): new, non-poc operation,
to retrieve the list of available properties from a table.
* OpenChange/MAPIStoreTable.m (-notifyChangesForChild:): same as below.

View File

@ -136,6 +136,8 @@
ofTableType: (uint8_t) tableType
inRow: (struct SRow *) aRow
withMID: (uint64_t) fmid;
- (int) getAvailableProperties: (struct SPropTagArray **) propertiesP
ofTableType: (uint8_t) type;
- (int) setPropertiesWithFMID: (uint64_t) fmid
ofTableType: (uint8_t) tableType
inRow: (struct SRow *) aRow;

View File

@ -607,6 +607,37 @@ _prepareContextClass (struct mapistore_context *newMemCtx,
return rc;
}
- (int) getAvailableProperties: (struct SPropTagArray **) propertiesP
ofTableType: (uint8_t) type
{
int rc = MAPISTORE_SUCCESS;
switch (type)
{
case MAPISTORE_FOLDER_TABLE:
[[baseFolder class] getAvailableProperties: propertiesP];
break;
case MAPISTORE_MESSAGE_TABLE:
[[baseFolder messageClass] getAvailableProperties: propertiesP];
break;
case MAPISTORE_FAI_TABLE:
[MAPIStoreFAIMessage getAvailableProperties: propertiesP];
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

View File

@ -459,6 +459,33 @@ sogo_op_get_table_property(void *private_data,
return rc;
}
static int
sogo_op_get_available_table_properties(void *private_data,
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];
[context tearDownRequest];
[pool release];
return rc;
}
static int
sogo_op_openmessage(void *private_data,
uint64_t fid,
@ -1213,6 +1240,7 @@ int mapistore_init_backend(void)
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_get_folders_list = sogo_op_get_folders_list;
backend.op_set_restrictions = sogo_op_set_restrictions;
backend.op_set_sort_order = sogo_op_set_sort_order;