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

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

#include "mapiproxy/dcesrv_mapiproxy.h"
#include "mapiproxy/libmapiproxy/libmapiproxy.h"
#include "dcesrv_exchange_emsmdb.h"

Functions

uint32_t emsmdbp_get_contextID (struct mapi_handles *handles)
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_object * emsmdbp_object_folder_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, uint64_t folderID, struct mapi_handles *parent)
struct mapi_handles * emsmdbp_object_get_folder_handle_by_fid (struct mapi_handles_context *handles_ctx, uint64_t fid)
_PUBLIC_ struct emsmdbp_object * emsmdbp_object_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx)
_PUBLIC_ struct emsmdbp_object * emsmdbp_object_mailbox_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *request, bool mailboxstore)
_PUBLIC_ struct emsmdbp_object * emsmdbp_object_message_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, uint64_t messageID, struct mapi_handles *parent)
_PUBLIC_ struct emsmdbp_object * emsmdbp_object_stream_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, uint32_t property, struct mapi_handles *parent)
_PUBLIC_ struct emsmdbp_object * emsmdbp_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:
handles pointer to the MAPI handle to lookup
Returns:
contextID value on success, otherwise -1

References mapi_handles_get_private_data().

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:
handles pointer to the MAPI handle to lookup
Returns:
true if parent is within mailbox store, otherwise false

References mapi_handles_get_private_data().

Referenced by emsmdbp_object_folder_init().

bool emsmdbp_is_mapistore ( struct mapi_handles *  handles  ) 
static int emsmdbp_object_destructor ( void *  data  )  [static]

talloc destructor for emsmdbp_objects

Parameters:
data generic pointer on data
Returns:
0 on success, otherwise -1

Referenced by emsmdbp_object_init().

_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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
folderID the folder identifier
parent handle to the parent folder for this folder
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_get_contextID(), emsmdbp_is_mailboxstore(), emsmdbp_is_mapistore(), emsmdbp_object_init(), MAPISTORE_SUCCESS, and openchangedb_get_mapistoreURI().

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_ctx pointer to the handles context
fid folder identifier to lookup
Returns:
pointer to valid mapi_handles structure on success, otherwise NULL

References mapi_handles_get_private_data().

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_object_destructor().

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
request pointer to the Logon MAPI request
mailboxstore boolean 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(), openchangedb_get_PublicFolderID(), and openchangedb_get_SystemFolderID().

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
messageID the message identifier
parent pointer to the parent MAPI handle
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_is_mapistore(), emsmdbp_object_init(), and mapi_handles_get_private_data().

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider cotnext
property the stream property identifier
parent pointer to the parent MAPI handle

References emsmdbp_get_contextID(), emsmdbp_is_mapistore(), emsmdbp_object_init(), and mapi_handles_get_private_data().

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_ctx pointer to the memory context
emsmdbp_ctx pointer to the emsmdb provider context
parent pointer to the parent MAPI handle
Returns:
Allocated emsmdbp object on success, otherwise NULL

References emsmdbp_is_mapistore(), emsmdbp_object_init(), and mapi_handles_get_private_data().

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/