MAPIStore 10 backendfolder structure

Version 3 (Julien Kerihuel, 2011-10-13 01:34 pm)

1 1 Julien Kerihuel
h1. MAPIStore 1.0 backend.folder structure
2 1 Julien Kerihuel
3 1 Julien Kerihuel
h2. folder.open_folder
4 1 Julien Kerihuel
5 2 Julien Kerihuel
This function opens a folder in the backend. It should only perform an action when the folder is not a root/mapistore folder (referenced in openchange.ldb), since these specific root folders are opened during [[MAPIStore_10_backendbackend_structure#backendcreate_context-function|context creation]] and morphed/returned as a folder object when [[MAPIStore_10_backendcontext_structure#contextget_root_folder|context.get_root_folder]] returns.
6 2 Julien Kerihuel
7 2 Julien Kerihuel
For any folders within a backend and different from the root folder, the folder should be opened. The function takes in parameter:
8 2 Julien Kerihuel
* _void *parent_folder_: the parent folder object of the folder to open
9 2 Julien Kerihuel
* _TALLOC_CTX *_: a memory context to allocate folder_object with
10 2 Julien Kerihuel
* _uint64_t fid_: the folder identifier of the folder to open
11 2 Julien Kerihuel
* _void **folder_object_: the opened folder object to return
12 2 Julien Kerihuel
13 3 Julien Kerihuel
Folders are opened within a given context, which folder object is retrieved through [[MAPIStore_10_backendcontext_structure#contextget_root_folder|context.get_root_folder]] call. While this specifically apply to folder underneath the root folder, the same logic apply to sub folders which parent is not the root folder object within the context. It requires either to keep a reference to the root folder along newly created folder objects or be able to walk through the associated MAPIStore URI and figure out what the root folder URI is.
14 3 Julien Kerihuel
15 1 Julien Kerihuel
h2. folder.create_folder
16 3 Julien Kerihuel
17 3 Julien Kerihuel
This function only creates a folder within a existing context. The resulting created folder will have a URI using the same backend that the context it is using.
18 1 Julien Kerihuel
19 1 Julien Kerihuel
h2. folder.create_message