openchangedb_message.c File Reference

OpenChange Dispatcher database message routines. More...

#include <inttypes.h>
#include "mapiproxy/dcesrv_mapiproxy.h"
#include "mapiproxy/libmapistore/mapistore.h"
#include "libmapiproxy.h"
#include "libmapi/libmapi_private.h"

Functions

_PUBLIC_ enum MAPISTATUS openchangedb_message_create (TALLOC_CTX *mem_ctx, struct ldb_context *ldb_ctx, uint64_t messageID, uint64_t folderID, bool fai, void **message_object)
 
_PUBLIC_ enum MAPISTATUS openchangedb_message_get_property (TALLOC_CTX *mem_ctx, void *message_object, uint32_t proptag, void **data)
 
_PUBLIC_ enum MAPISTATUS openchangedb_message_open (TALLOC_CTX *mem_ctx, struct ldb_context *ldb_ctx, uint64_t messageID, uint64_t folderID, void **message_object, void **msgp)
 
_PUBLIC_ enum MAPISTATUS openchangedb_message_save (void *_msg, uint8_t SaveFlags)
 
_PUBLIC_ enum MAPISTATUS openchangedb_message_set_properties (TALLOC_CTX *mem_ctx, void *message_object, struct SRow *row)
 

Detailed Description

OpenChange Dispatcher database message routines.

Function Documentation

_PUBLIC_ enum MAPISTATUS openchangedb_message_create ( TALLOC_CTX *  mem_ctx,
struct ldb_context *  ldb_ctx,
uint64_t  messageID,
uint64_t  folderID,
bool  fai,
void **  message_object 
)

Initialize and create a message object

Parameters
mem_ctxpointer to the memory context to use for allocation
ldb_ctxpointer to the ldb context
messageIDthe identifier of the message to create
folderIDthe identifier of the folder where the message is created
message_objectpointer on pointer to the message object to return
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References openchangedb_message::folderID, openchangedb_message::ldb_ctx, openchangedb_message::messageID, openchangedb_message::msg, openchangedb_get_distinguishedName(), openchangedb_get_mailboxDN(), OPENCHANGEDB_MESSAGE_CREATE, openchangedb_message::res, and openchangedb_message::status.

Referenced by EcDoRpc_RopCreateMessage(), and emsmdbp_mailbox_provision_public_freebusy().

_PUBLIC_ enum MAPISTATUS openchangedb_message_get_property ( TALLOC_CTX *  mem_ctx,
void *  message_object,
uint32_t  proptag,
void **  data 
)

Retrieve a property on a LDB message

Parameters
mem_ctxpointer to the memory context
message_objectthe openchangedb message to retrieve data from
proptagthe MAPI property tag to lookup
datapointer on pointer to the data to return
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References openchangedb_message::msg, openchangedb_get_property_data_message(), OPENCHANGEDB_MESSAGE_CREATE, OPENCHANGEDB_MESSAGE_OPEN, openchangedb_property_get_attribute(), openchangedb_message::res, and openchangedb_message::status.

Referenced by emsmdbp_object_get_properties_message().

_PUBLIC_ enum MAPISTATUS openchangedb_message_open ( TALLOC_CTX *  mem_ctx,
struct ldb_context *  ldb_ctx,
uint64_t  messageID,
uint64_t  folderID,
void **  message_object,
void **  msgp 
)

Initialize and open a message object

Parameters
mem_ctxpointer to the memory context to use for allocation
ldb_ctxpointer to the ldb context
messageIDthe identifier of the message to open
folderIDthe identifier of the folder where the message is stored
message_objectpointer on pointer to the message object to return
msgppointer on pointer to the mapistore message to return
Returns
MAPI_E_SUCCESS on success, otherwise MAPISTORE error

References openchangedb_message::folderID, openchangedb_message::ldb_ctx, openchangedb_message::messageID, openchangedb_message::msg, OPENCHANGEDB_MESSAGE_OPEN, openchangedb_message::res, and openchangedb_message::status.

Referenced by emsmdbp_object_message_open().

_PUBLIC_ enum MAPISTATUS openchangedb_message_save ( void *  _msg,
uint8_t  SaveFlags 
)

Save (commit) message in openchangedb database

Parameters
msgthe message object
SaveFlagsflags associated to the save operation
Returns
MAPI_E_SUCCESS on success, otherwise MAPI error

References openchangedb_message::ldb_ctx, openchangedb_message::msg, OPENCHANGEDB_MESSAGE_CREATE, OPENCHANGEDB_MESSAGE_OPEN, openchangedb_message::res, and openchangedb_message::status.

Referenced by EcDoRpc_RopSaveChangesMessage(), and emsmdbp_mailbox_provision_public_freebusy().

_PUBLIC_ enum MAPISTATUS openchangedb_message_set_properties ( TALLOC_CTX *  mem_ctx,
void *  message_object,
struct SRow *  row 
)

Set a list of properties on a message

Parameters
mem_ctxpointer to the memory context
message_objectpointer to the openchangedb message object
rowpointer to the SRow structure holding the array of properties to set on the message
Returns
MAPI_E_SUCCESS on success, otherwise MAPI errors.

References openchangedb_message::msg, OPENCHANGEDB_MESSAGE_CREATE, OPENCHANGEDB_MESSAGE_OPEN, openchangedb_property_get_attribute(), openchangedb_set_folder_property_data(), openchangedb_message::res, and openchangedb_message::status.

Referenced by emsmdbp_mailbox_provision_public_freebusy(), and emsmdbp_object_set_properties().


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/