mapiproxy/servers/default/emsmdb/emsmdbp_object.c File Reference

Server-side specific objects init/release routines. More...

Functions

uint32_t emsmdbp_get_contextID (struct mapi_handles *handles)
const char * emsmdbp_getstr_type (struct emsmdbp_object *object)
bool emsmdbp_is_mailboxstore (struct mapi_handles *handles)
bool emsmdbp_is_mapistore (struct mapi_handles *handles)
static int emsmdbp_object_destructor (void *data)
_PUBLIC_ struct emsmdbp_objectemsmdbp_object_folder_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, uint64_t folderID, struct mapi_handles *parent)
struct mapi_handlesemsmdbp_object_get_folder_handle_by_fid (struct mapi_handles_context *handles_ctx, uint64_t fid)
_PUBLIC_ struct emsmdbp_objectemsmdbp_object_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx)
_PUBLIC_ struct emsmdbp_objectemsmdbp_object_mailbox_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *request, bool mailboxstore)
_PUBLIC_ struct emsmdbp_objectemsmdbp_object_message_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, uint64_t messageID, struct mapi_handles *parent)
_PUBLIC_ struct emsmdbp_objectemsmdbp_object_stream_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, uint32_t property, struct mapi_handles *parent)
_PUBLIC_ struct emsmdbp_objectemsmdbp_object_table_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct mapi_handles *parent)

Detailed Description

Server-side specific objects init/release routines.


Function Documentation

uint32_t emsmdbp_get_contextID ( struct mapi_handles handles)

Return the contextID associated to a handle

Parameters:
handlespointer to the MAPI handle to lookup
Returns:
contextID value on success, otherwise -1

References EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, EMSMDBP_OBJECT_MESSAGE, EMSMDBP_OBJECT_STREAM, mapi_handles_get_private_data(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_RopCreateMessage(), emsmdbp_object_folder_init(), and emsmdbp_object_stream_init().

bool emsmdbp_is_mailboxstore ( struct mapi_handles handles)

Convenient function to determine whether specified mapi_handles refers to object within mailbox or public folders store.

Parameters:
handlespointer to the MAPI handle to lookup
Returns:
true if parent is within mailbox store, otherwise false

References EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, mapi_handles_get_private_data(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by emsmdbp_object_folder_init().

static int emsmdbp_object_destructor ( void *  data) [static]
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_folder_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
uint64_t  folderID,
struct mapi_handles parent 
) [read]

Initialize a folder object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
folderIDthe folder identifier
parenthandle to the parent folder for this folder
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_folder::contextID, emsmdbp_get_contextID(), emsmdbp_is_mailboxstore(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_init(), emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_context::login_user, emsmdbp_object_folder::mailboxstore, emsmdbp_context::mstore_ctx, emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_mapistoreURI(), and emsmdbp_context::username.

Referenced by EcDoRpc_RopCreateFolder(), EcDoRpc_RopOpenFolder(), and EcDoRpc_RopOpenMessage().

struct mapi_handles* emsmdbp_object_get_folder_handle_by_fid ( struct mapi_handles_context handles_ctx,
uint64_t  fid 
) [read]

Retrieve the folder handle matching given fid

Parameters:
handles_ctxpointer to the handles context
fidfolder identifier to lookup
Returns:
pointer to valid mapi_handles structure on success, otherwise NULL

References EMSMDBP_OBJECT_FOLDER, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles::handle, mapi_handles_context::handles, mapi_handles_get_private_data(), mapi_handles::next, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_RopCreateMessage(), and EcDoRpc_RopOpenMessage().

_PUBLIC_ struct emsmdbp_object* emsmdbp_object_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx 
) [read]

Initialize an emsmdbp_object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_destructor(), EMSMDBP_OBJECT_UNDEF, emsmdbp_context::mstore_ctx, and emsmdbp_object::object.

Referenced by emsmdbp_object_folder_init(), emsmdbp_object_mailbox_init(), emsmdbp_object_message_init(), emsmdbp_object_stream_init(), and emsmdbp_object_table_init().

_PUBLIC_ struct emsmdbp_object* emsmdbp_object_mailbox_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  request,
bool  mailboxstore 
) [read]

Initialize a mailbox object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
requestpointer to the Logon MAPI request
mailboxstoreboolean which specifies whether the mailbox object is a PF store or a private mailbox store
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_init(), EMSMDBP_OBJECT_MAILBOX, emsmdbp_object_mailbox::folderID, emsmdbp_objects::mailbox, emsmdbp_object::object, emsmdbp_context::oc_ctx, openchangedb_get_PublicFolderID(), openchangedb_get_SystemFolderID(), emsmdbp_object_mailbox::owner_EssDN, emsmdbp_object_mailbox::owner_Name, emsmdbp_context::samdb_ctx, and emsmdbp_context::szUserDN.

Referenced by EcDoRpc_RopLogon().

_PUBLIC_ struct emsmdbp_object* emsmdbp_object_message_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
uint64_t  messageID,
struct mapi_handles parent 
) [read]

Initialize a message object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
messageIDthe message identifier
parentpointer to the parent MAPI handle
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_folder::contextID, emsmdbp_is_mapistore(), emsmdbp_object_init(), EMSMDBP_OBJECT_MESSAGE, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles_get_private_data(), emsmdbp_objects::message, emsmdbp_context::mstore_ctx, and emsmdbp_object::object.

Referenced by EcDoRpc_RopCreateMessage(), and EcDoRpc_RopOpenMessage().

_PUBLIC_ struct emsmdbp_object* emsmdbp_object_stream_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
uint32_t  property,
struct mapi_handles parent 
) [read]

Initialize a stream object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider cotnext
propertythe stream property identifier
parentpointer to the parent MAPI handle

References emsmdbp_get_contextID(), emsmdbp_is_mapistore(), emsmdbp_object_init(), EMSMDBP_OBJECT_STREAM, mapi_handles_get_private_data(), emsmdbp_object::object, and emsmdbp_objects::stream.

Referenced by EcDoRpc_RopOpenStream().

_PUBLIC_ struct emsmdbp_object* emsmdbp_object_table_init ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct mapi_handles parent 
) [read]

Initialize a table object

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
parentpointer to the parent MAPI handle
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_folder::contextID, emsmdbp_is_mapistore(), emsmdbp_object_init(), EMSMDBP_OBJECT_TABLE, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles_get_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, and emsmdbp_objects::table.

Referenced by EcDoRpc_RopGetContentsTable(), and EcDoRpc_RopGetHierarchyTable().


Creative Commons License
Creative Commons Attribution icon Creative Commons Share Alike icon
This content is licensed under the Creative Commons
Attribution ShareAlike License v. 3.0:
http://creativecommons.org/licenses/by-sa/3.0/