Server-side specific objects init/release routines. More...
#include <ctype.h>
#include "mapiproxy/dcesrv_mapiproxy.h"
#include "mapiproxy/libmapiproxy/libmapiproxy.h"
#include "mapiproxy/libmapiproxy/fault_util.h"
#include "mapiproxy/libmapiserver/libmapiserver.h"
#include "mapiproxy/libmapistore/mapistore_nameid.h"
#include "libmapi/property_tags.h"
#include "libmapi/property_altnames.h"
#include "dcesrv_exchange_emsmdb.h"
Functions | |
_PUBLIC_ uint32_t | emsmdbp_get_contextID (struct emsmdbp_object *object) |
char * | emsmdbp_get_owner (struct emsmdbp_object *object) |
bool | emsmdbp_is_mailboxstore (struct emsmdbp_object *object) |
bool | emsmdbp_is_mapistore (struct emsmdbp_object *object) |
_PUBLIC_ struct emsmdbp_object * | emsmdbp_object_attachment_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, uint64_t messageID, struct emsmdbp_object *parent) |
_PUBLIC_ int | emsmdbp_object_copy_properties (struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *source_object, struct emsmdbp_object *target_object, struct SPropTagArray *excluded_properties, bool deep_copy) |
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 emsmdbp_object *parent_object) |
_PUBLIC_ struct emsmdbp_object * | emsmdbp_object_ftcontext_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *parent) |
_PUBLIC_ struct emsmdbp_object * | emsmdbp_object_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *parent_object) |
_PUBLIC_ struct emsmdbp_object * | emsmdbp_object_mailbox_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, const char *essDN, bool mailboxstore) |
_PUBLIC_ struct emsmdbp_object * | emsmdbp_object_message_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, uint64_t messageID, struct emsmdbp_object *parent) |
_PUBLIC_ enum mapistore_error | emsmdbp_object_open_folder_by_fid (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *context_object, uint64_t fid, struct emsmdbp_object **folder_object_p) |
_PUBLIC_ struct emsmdbp_object * | emsmdbp_object_stream_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *parent) |
_PUBLIC_ struct emsmdbp_object * | emsmdbp_object_subscription_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *parent) |
_PUBLIC_ struct emsmdbp_object * | emsmdbp_object_synccontext_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *parent_object) |
_PUBLIC_ struct emsmdbp_object * | emsmdbp_object_table_init (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct emsmdbp_object *parent) |
Server-side specific objects init/release routines.
_PUBLIC_ uint32_t emsmdbp_get_contextID | ( | struct emsmdbp_object * | object | ) |
Return the contextID associated to a handle
object | pointer to the emsmdp object |
References emsmdbp_get_owner(), emsmdbp_is_mapistore(), emsmdbp_object_folder_init(), openchangedb_create_folder(), openchangedb_get_fid(), openchangedb_get_fid_by_name(), openchangedb_get_mapistoreURI(), and openchangedb_get_parent_fid().
Referenced by convertIdToFMID(), dcesrv_EcDoDisconnect(), EcDoRpc_RopCopyFolder(), EcDoRpc_RopCreateAttach(), EcDoRpc_RopCreateMessage(), EcDoRpc_RopDeleteMessages(), EcDoRpc_RopEmptyFolder(), EcDoRpc_RopFastTransferSourceCopyTo(), EcDoRpc_RopFindRow(), EcDoRpc_RopGetSearchCriteria(), EcDoRpc_RopModifyPermissions(), EcDoRpc_RopModifyRecipients(), EcDoRpc_RopOpenAttach(), EcDoRpc_RopOpenEmbeddedMessage(), EcDoRpc_RopReloadCachedInformation(), EcDoRpc_RopRemoveAllRecipients(), EcDoRpc_RopResetTable(), EcDoRpc_RopRestrict(), EcDoRpc_RopSaveChangesMessage(), EcDoRpc_RopSetColumns(), EcDoRpc_RopSetMessageReadFlag(), EcDoRpc_RopSortTable(), EcDoRpc_RopSubmitMessage(), EcDoRpc_RopSyncImportDeletes(), EcDoRpc_RopSyncImportMessageChange(), EcDoRpc_RopSyncImportReadStateChanges(), EcDoRpc_RopTransportSend(), emsmdbp_object_destructor(), emsmdbp_object_folder_init(), emsmdbp_object_init(), emsmdbp_object_message_init(), emsmdbp_object_subscription_init(), emsmdbp_object_table_init(), oxcfxics_push_folderChange(), and oxcfxics_push_messageChange().
char* emsmdbp_get_owner | ( | struct emsmdbp_object * | object | ) |
Convenience function to determine the owner of an object
object | pointer to the emsmdp object |
Referenced by convertIdToFMID(), EcDoRpc_RopDeleteMessages(), EcDoRpc_RopSaveChangesMessage(), EcDoRpc_RopSubmitMessage(), EcDoRpc_RopSyncGetTransferState(), EcDoRpc_RopSyncImportDeletes(), EcDoRpc_RopSyncImportHierarchyChange(), EcDoRpc_RopSyncImportMessageChange(), EcDoRpc_RopSyncImportReadStateChanges(), emsmdbp_get_contextID(), emsmdbp_object_subscription_init(), emsmdbp_object_table_init(), and oxcfxics_push_folderChange().
bool emsmdbp_is_mailboxstore | ( | struct emsmdbp_object * | object | ) |
Convenient function to determine whether specified mapi_handles refers to object within mailbox or public folders store.
object | pointer to the emsmdp object |
Referenced by emsmdbp_object_folder_init().
bool emsmdbp_is_mapistore | ( | struct emsmdbp_object * | object | ) |
Convenient function to determine whether specified object is using mapistore or not
object | pointer to the emsmdp object |
Referenced by convertIdToFMID(), EcDoRpc_RopCopyFolder(), EcDoRpc_RopCreateAttach(), EcDoRpc_RopCreateMessage(), EcDoRpc_RopDeleteMessages(), EcDoRpc_RopEmptyFolder(), EcDoRpc_RopFastTransferSourceCopyTo(), EcDoRpc_RopFindRow(), EcDoRpc_RopGetPermissionsTable(), EcDoRpc_RopModifyPermissions(), EcDoRpc_RopModifyRecipients(), EcDoRpc_RopOpenAttach(), EcDoRpc_RopOpenEmbeddedMessage(), EcDoRpc_RopReloadCachedInformation(), EcDoRpc_RopRemoveAllRecipients(), EcDoRpc_RopResetTable(), EcDoRpc_RopRestrict(), EcDoRpc_RopSaveChangesMessage(), EcDoRpc_RopSetColumns(), EcDoRpc_RopSetMessageReadFlag(), EcDoRpc_RopSortTable(), EcDoRpc_RopSubmitMessage(), EcDoRpc_RopSyncImportDeletes(), EcDoRpc_RopSyncImportMessageChange(), EcDoRpc_RopSyncImportReadStateChanges(), EcDoRpc_RopTransportSend(), emsmdbp_get_contextID(), emsmdbp_object_copy_properties(), emsmdbp_object_destructor(), emsmdbp_object_folder_init(), emsmdbp_object_init(), emsmdbp_object_message_init(), emsmdbp_object_subscription_init(), emsmdbp_object_table_init(), oxcfxics_push_folderChange(), and oxcfxics_push_messageChange().
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_attachment_init | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
uint64_t | messageID, | ||
struct emsmdbp_object * | parent | ||
) |
Initialize a attachment object
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider cotnext |
folderID | the folder identifier |
messageID | the message identifier |
parent | emsmdbp object of the parent |
References emsmdbp_object_init().
Referenced by EcDoRpc_RopCreateAttach(), EcDoRpc_RopOpenAttach(), and emsmdbp_object_init().
_PUBLIC_ int emsmdbp_object_copy_properties | ( | struct emsmdbp_context * | emsmdbp_ctx, |
struct emsmdbp_object * | source_object, | ||
struct emsmdbp_object * | target_object, | ||
struct SPropTagArray * | excluded_properties, | ||
bool | deep_copy | ||
) |
Copy properties from an object to another object
emsmdbp_ctx | pointer to the emsmdb provider context |
source_object | pointer to the source object |
target_object | pointer to the target object |
excluded_properties | pointer to a SPropTagArray listing properties that must not be copied |
deep_copy | indicates whether subobjects must be copied |
References emsmdbp_is_mapistore().
Referenced by EcDoRpc_RopCopyTo().
|
static |
talloc destructor for emsmdbp_objects
data | generic pointer on data |
References emsmdbp_get_contextID(), and emsmdbp_is_mapistore().
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 emsmdbp_object * | parent_object | ||
) |
Initialize a folder object
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
folderID | the folder identifier |
parent | emsmdbp object of the parent folder for this folder |
References emsmdbp_get_contextID(), emsmdbp_is_mailboxstore(), emsmdbp_is_mapistore(), emsmdbp_object_init(), emsmdbp_object_table_init(), openchangedb_get_folder_count(), openchangedb_get_mapistoreURI(), openchangedb_get_message_count(), openchangedb_get_system_idx(), and openchangedb_table_init().
Referenced by emsmdbp_get_contextID(), and emsmdbp_object_open_folder_by_fid().
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_ftcontext_init | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct emsmdbp_object * | parent | ||
) |
Initialize a ftcontext object
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider cotnext |
whole_store | whether the subscription applies to the specified change on the entire store or stricly on the specified folder/message |
folderID | the folder identifier |
messageID | the message identifier |
parent | emsmdbp object of the parent |
References emsmdbp_object_init().
Referenced by EcDoRpc_RopFastTransferSourceCopyTo(), and EcDoRpc_RopSyncGetTransferState().
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_init | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct emsmdbp_object * | parent_object | ||
) |
Initialize an emsmdbp_object
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
References emsmdbp_get_contextID(), emsmdbp_is_mapistore(), emsmdbp_object_attachment_init(), and emsmdbp_object_destructor().
Referenced by emsmdbp_object_attachment_init(), emsmdbp_object_folder_init(), emsmdbp_object_ftcontext_init(), emsmdbp_object_mailbox_init(), emsmdbp_object_message_init(), emsmdbp_object_stream_init(), emsmdbp_object_subscription_init(), emsmdbp_object_synccontext_init(), and emsmdbp_object_table_init().
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_mailbox_init | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
const char * | essDN, | ||
bool | mailboxstore | ||
) |
Initialize a mailbox object
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 |
References emsmdbp_object_init(), openchangedb_get_PublicFolderID(), and openchangedb_get_SystemFolderID().
Referenced by EcDoRpc_RopLogon(), and emsmdbp_object_message_init().
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_message_init | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
uint64_t | messageID, | ||
struct emsmdbp_object * | parent | ||
) |
Initialize a message object
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
messageID | the message identifier |
parent | emsmdbp object of the parent |
References emsmdbp_get_contextID(), emsmdbp_is_mapistore(), emsmdbp_object_init(), emsmdbp_object_mailbox_init(), emsmdbp_object_open_folder_by_fid(), emsmdbp_object_table_init(), openchangedb_get_SystemFolderID(), and openchangedb_message_open().
Referenced by EcDoRpc_RopCreateMessage(), EcDoRpc_RopOpenEmbeddedMessage(), and EcDoRpc_RopSyncImportMessageChange().
_PUBLIC_ enum mapistore_error emsmdbp_object_open_folder_by_fid | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct emsmdbp_object * | context_object, | ||
uint64_t | fid, | ||
struct emsmdbp_object ** | folder_object_p | ||
) |
Return the folder object associated to specified folder identified
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdbp context |
context_object | pointer to current context object |
fid | pointer to the Folder Identifier to lookup |
References emsmdbp_object_folder_init().
Referenced by convertIdToFMID(), EcDoRpc_RopCreateFolder(), EcDoRpc_RopCreateMessage(), EcDoRpc_RopOpenFolder(), EcDoRpc_RopSyncImportHierarchyChange(), and emsmdbp_object_message_init().
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_stream_init | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct emsmdbp_object * | parent | ||
) |
Initialize a stream object
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider cotnext |
property | the stream property identifier |
parent | emsmdbp object of the parent |
References emsmdbp_object_init().
Referenced by EcDoRpc_RopOpenStream().
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_subscription_init | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct emsmdbp_object * | parent | ||
) |
Initialize a notification subscription object
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider cotnext |
whole_store | whether the subscription applies to the specified change on the entire store or stricly on the specified folder/message |
folderID | the folder identifier |
messageID | the message identifier |
parent | emsmdbp object of the parent |
References emsmdbp_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), emsmdbp_object_init(), entryid_set_AB_EntryID(), libmapiserver_push_property(), openchangedb_get_folder_count(), openchangedb_get_folder_property(), openchangedb_get_mapistoreURI(), openchangedb_message_get_property(), openchangedb_message_set_properties(), and openchangedb_set_mapistoreURI().
Referenced by EcDoRpc_RopRegisterNotification().
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_synccontext_init | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct emsmdbp_object * | parent_object | ||
) |
Initialize a synccontext object
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider cotnext |
whole_store | whether the subscription applies to the specified change on the entire store or stricly on the specified folder/message |
folderID | the folder identifier |
messageID | the message identifier |
parent | emsmdbp object of the parent |
References emsmdbp_object_init(), and openchangedb_get_MailboxReplica().
Referenced by EcDoRpc_RopSyncConfigure(), and EcDoRpc_RopSyncOpenCollector().
_PUBLIC_ struct emsmdbp_object* emsmdbp_object_table_init | ( | TALLOC_CTX * | mem_ctx, |
struct emsmdbp_context * | emsmdbp_ctx, | ||
struct emsmdbp_object * | parent | ||
) |
Initialize a table object
mem_ctx | pointer to the memory context |
emsmdbp_ctx | pointer to the emsmdb provider context |
parent | emsmdbp object of the parent |
References emsmdbp_get_contextID(), emsmdbp_get_owner(), emsmdbp_is_mapistore(), emsmdbp_object_init(), and libmapiserver_push_property().
Referenced by EcDoRpc_RopGetPermissionsTable(), EcDoRpc_RopGetRulesTable(), emsmdbp_object_folder_init(), and emsmdbp_object_message_init().
![]() ![]() ![]() |
This content is licensed under the Creative Commons Attribution ShareAlike License v. 3.0: http://creativecommons.org/licenses/by-sa/3.0/ |