Monotone-Parent: 3ded00a80ce87781ff6767f6fe38a12735a48340
Monotone-Revision: af0fb5901615e40ad3549c59f74f88bb33f9b392 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-08-09T19:43:17 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
parent
c2a63a3d8e
commit
700d23e80e
|
@ -1,3 +1,8 @@
|
|||
2012-08-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* OpenChange/MAPIStoreSOGo.m (sogo_folder_move_folder)
|
||||
(sogo_folder_copy_folder): new backend methods.
|
||||
|
||||
2012-08-08 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* OpenChange/MAPIStoreCalendarMessage.m (-save): generate a
|
||||
|
|
|
@ -123,6 +123,14 @@
|
|||
andChangeKeys: (struct Binary_r **) targetChangeKeys
|
||||
wantCopy: (uint8_t) want_copy;
|
||||
|
||||
- (enum mapistore_error) moveFolderWithFID: (uint64_t) fid
|
||||
fromFolder: (MAPIStoreFolder *) sourceFolder
|
||||
withNewName: (NSString *) newFolderName;
|
||||
- (enum mapistore_error) copyFolderWithFID: (uint64_t) fid
|
||||
fromFolder: (MAPIStoreFolder *) sourceFolder
|
||||
recursive: (BOOL) resursive
|
||||
withNewName: (NSString *) newFolderName;
|
||||
|
||||
- (int) getDeletedFMIDs: (struct I8Array_r **) fmidsPtr
|
||||
andCN: (uint64_t *) cnPtr
|
||||
fromChangeNumber: (uint64_t) changeNum
|
||||
|
|
|
@ -795,6 +795,21 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe
|
|||
return rc;
|
||||
}
|
||||
|
||||
- (enum mapistore_error) moveFolderWithFID: (uint64_t) fid
|
||||
fromFolder: (MAPIStoreFolder *) sourceFolder
|
||||
withNewName: (NSString *) newFolderName
|
||||
{
|
||||
return MAPISTORE_ERR_DENIED;
|
||||
}
|
||||
|
||||
- (enum mapistore_error) copyFolderWithFID: (uint64_t) fid
|
||||
fromFolder: (MAPIStoreFolder *) sourceFolder
|
||||
recursive: (BOOL) resursive
|
||||
withNewName: (NSString *) newFolderName
|
||||
{
|
||||
return MAPISTORE_ERR_DENIED;
|
||||
}
|
||||
|
||||
- (SOGoFolder *) aclFolder
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
|
|
|
@ -608,6 +608,86 @@ sogo_folder_move_copy_messages(void *folder_object,
|
|||
return rc;
|
||||
}
|
||||
|
||||
static enum mapistore_error
|
||||
sogo_folder_move_folder(void *folder_object, void *source_folder_object,
|
||||
uint64_t fid, const char *new_folder_name)
|
||||
{
|
||||
MAPIStoreFolder *sourceFolder, *targetFolder;
|
||||
NSAutoreleasePool *pool;
|
||||
NSString *newFolderName;
|
||||
struct MAPIStoreTallocWrapper *wrapper;
|
||||
int rc;
|
||||
|
||||
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
if (folder_object)
|
||||
{
|
||||
wrapper = folder_object;
|
||||
targetFolder = wrapper->instance;
|
||||
|
||||
wrapper = source_folder_object;
|
||||
sourceFolder = wrapper->instance;
|
||||
|
||||
GSRegisterCurrentThread ();
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
newFolderName = [NSString stringWithUTF8String: new_folder_name];
|
||||
|
||||
rc = [targetFolder moveFolderWithFID: fid
|
||||
fromFolder: sourceFolder
|
||||
withNewName: newFolderName];
|
||||
[pool release];
|
||||
GSUnregisterCurrentThread ();
|
||||
}
|
||||
else
|
||||
{
|
||||
rc = sogo_backend_unexpected_error();
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static enum mapistore_error
|
||||
sogo_folder_copy_folder(void *folder_object, void *source_folder_object,
|
||||
uint64_t fid, bool recursive,
|
||||
const char *new_folder_name)
|
||||
{
|
||||
MAPIStoreFolder *sourceFolder, *targetFolder;
|
||||
NSAutoreleasePool *pool;
|
||||
NSString *newFolderName;
|
||||
struct MAPIStoreTallocWrapper *wrapper;
|
||||
int rc;
|
||||
|
||||
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
if (folder_object)
|
||||
{
|
||||
wrapper = folder_object;
|
||||
targetFolder = wrapper->instance;
|
||||
|
||||
wrapper = source_folder_object;
|
||||
sourceFolder = wrapper->instance;
|
||||
|
||||
GSRegisterCurrentThread ();
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
newFolderName = [NSString stringWithUTF8String: new_folder_name];
|
||||
|
||||
rc = [targetFolder copyFolderWithFID: fid
|
||||
fromFolder: sourceFolder
|
||||
recursive: recursive
|
||||
withNewName: newFolderName];
|
||||
[pool release];
|
||||
GSUnregisterCurrentThread ();
|
||||
}
|
||||
else
|
||||
{
|
||||
rc = sogo_backend_unexpected_error();
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static enum mapistore_error
|
||||
sogo_folder_get_deleted_fmids(void *folder_object, TALLOC_CTX *mem_ctx,
|
||||
enum mapistore_table_type table_type, uint64_t change_num,
|
||||
|
@ -1414,6 +1494,8 @@ int mapistore_init_backend(void)
|
|||
backend.folder.create_message = sogo_folder_create_message;
|
||||
backend.folder.delete_message = sogo_folder_delete_message;
|
||||
backend.folder.move_copy_messages = sogo_folder_move_copy_messages;
|
||||
backend.folder.move_folder = sogo_folder_move_folder;
|
||||
backend.folder.copy_folder = sogo_folder_copy_folder;
|
||||
backend.folder.get_deleted_fmids = sogo_folder_get_deleted_fmids;
|
||||
backend.folder.get_child_count = sogo_folder_get_child_count;
|
||||
backend.folder.open_table = sogo_folder_open_table;
|
||||
|
|
Loading…
Reference in a new issue