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

Folder object routines and Rops. More...

Functions

static enum MAPISTATUS DoDeleteSystemFolder (struct emsmdbp_context *emsmdbp_ctx, uint64_t parent_fid, uint64_t fid, uint8_t flags)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopCreateFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
static enum MAPISTATUS EcDoRpc_RopCreateGenericFolder (struct emsmdbp_context *emsmdbp_ctx, struct mapi_handles *parent, struct SRow *aRow, enum FOLDER_FLAGS folderFlags, struct CreateFolder_repl *response)
static enum MAPISTATUS EcDoRpc_RopCreateSystemSpecialFolder (struct emsmdbp_context *emsmdbp_ctx, struct SRow *aRow, enum FOLDER_FLAGS folderFlags, uint64_t parentFolder, struct CreateFolder_repl *response)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopDeleteFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopDeleteMessages (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopEmptyFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetContentsTable (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetHierarchyTable (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetSearchCriteria (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopOpenFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSetSearchCriteria (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EcDoRpc_MAPI_REQ *mapi_req, struct EcDoRpc_MAPI_REPL *mapi_repl, uint32_t *handles, uint16_t *size)
static enum MAPISTATUS RopEmptyFolder_GenericFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct EmptyFolder_req request, struct EmptyFolder_repl *response, struct mapi_handles *folder)
static enum MAPISTATUS RopOpenFolder_GenericFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct OpenFolder_req request, struct OpenFolder_repl *response, struct mapi_handles *parent)
static enum MAPISTATUS RopOpenFolder_SystemSpecialFolder (TALLOC_CTX *mem_ctx, struct emsmdbp_context *emsmdbp_ctx, struct OpenFolder_req request, struct OpenFolder_repl *response)

Detailed Description

Folder object routines and Rops.


Function Documentation

static enum MAPISTATUS DoDeleteSystemFolder ( struct emsmdbp_context emsmdbp_ctx,
uint64_t  parent_fid,
uint64_t  fid,
uint8_t  flags 
) [static]
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopCreateFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc CreateFolder (0x1c) Rop. This operation creates a folder on the remote server.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the CreateFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the CreateFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error
Note:
We do not provide support for GhostInfo

References EcDoRpc_RopCreateGenericFolder(), EcDoRpc_RopCreateSystemSpecialFolder(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_folder_init(), emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_ROP_request_to_properties(), libmapiserver_RopCreateFolder_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

static enum MAPISTATUS EcDoRpc_RopCreateSystemSpecialFolder ( struct emsmdbp_context emsmdbp_ctx,
struct SRow *  aRow,
enum FOLDER_FLAGS  folderFlags,
uint64_t  parentFolder,
struct CreateFolder_repl *  response 
) [static]
_PUBLIC_ enum MAPISTATUS EcDoRpc_RopDeleteFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc DeleteFolder (0x1d) Rop. This operation deletes a folder on the remote server.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_folder::contextID, DoDeleteSystemFolder(), emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopDeleteFolder_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopDeleteMessages ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc DeleteMessage (0x1e) Rop. This operation (soft) deletes a message on the server.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the DeleteMessage EcDoRpc_MAPI_REQ structure
mapi_replpointer to the DeleteMessage EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_object_folder::contextID, emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_objects::folder, emsmdbp_object_folder::folderID, emsmdbp_context::handles_ctx, libmapiserver_RopDeleteMessage_size(), mapi_handles_get_private_data(), mapi_handles_search(), emsmdbp_context::mstore_ctx, emsmdbp_object::object, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopEmptyFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc EmptyFolder (0x58) Rop. This operation removes the sub-folders and messages from a given parent folder.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the EmptyFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the EmptyFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_is_mapistore(), emsmdbp_context::handles_ctx, libmapiserver_RopEmptyFolder_size(), mapi_handles_search(), and RopEmptyFolder_GenericFolder().

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetContentsTable ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc GetContentsTable (0x05) Rop. This operation get the content table of a container.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetContentsTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetContentsTable EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, emsmdbp_object_table_init(), EMSMDBP_TABLE_MESSAGE_TYPE, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetContentsTable_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetHierarchyTable ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc GetHierarchyTable (0x04) Rop. This operation gets the subfolder hierarchy table for a folder.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetHierarchyTable EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetHierarchyTable EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_is_mapistore(), EMSMDBP_OBJECT_FOLDER, EMSMDBP_OBJECT_MAILBOX, emsmdbp_object_table_init(), EMSMDBP_TABLE_FOLDER_TYPE, mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopGetHierarchyTable_size(), mapi_handles_add(), mapi_handles_get_private_data(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_context::mstore_ctx, emsmdbp_context::oc_ctx, openchangedb_get_folder_count(), and emsmdbp_object::type.

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopGetSearchCriteria ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc GetSearchCriteria (0x31) Rop. This operation gets the search criteria for a search folder.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the GetSearchCriteria EcDoRpc_MAPI_REQ structure
mapi_replpointer to the GetSearchCriteria EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopGetSearchCriteria_size().

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopOpenFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc OpenFolder (0x02) Rop. This operation opens an existing folder.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the OpenFolder EcDoRpc_MAPI_REQ structure
mapi_replpointer to the OpenFolder EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References emsmdbp_is_mapistore(), emsmdbp_object_folder_init(), mapi_handles::handle, emsmdbp_context::handles_ctx, libmapiserver_RopOpenFolder_size(), mapi_handles_add(), mapi_handles_search(), mapi_handles_set_private_data(), emsmdbp_object::object, RopOpenFolder_GenericFolder(), and RopOpenFolder_SystemSpecialFolder().

Referenced by EcDoRpc_process_transaction().

_PUBLIC_ enum MAPISTATUS EcDoRpc_RopSetSearchCriteria ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EcDoRpc_MAPI_REQ *  mapi_req,
struct EcDoRpc_MAPI_REPL *  mapi_repl,
uint32_t *  handles,
uint16_t *  size 
)

EcDoRpc SetSearchCriteria (0x30) Rop. This operation sets the search criteria for a search folder.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
mapi_reqpointer to the SetSearchCriteria EcDoRpc_MAPI_REQ structure
mapi_replpointer to the SetSearchCriteria EcDoRpc_MAPI_REPL structure
handlespointer to the MAPI handles array
sizepointer to the mapi_response size to update
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

References libmapiserver_RopSetSearchCriteria_size().

Referenced by EcDoRpc_process_transaction().

static enum MAPISTATUS RopEmptyFolder_GenericFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct EmptyFolder_req  request,
struct EmptyFolder_repl *  response,
struct mapi_handles folder 
) [static]
static enum MAPISTATUS RopOpenFolder_GenericFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct OpenFolder_req  request,
struct OpenFolder_repl *  response,
struct mapi_handles parent 
) [static]
static enum MAPISTATUS RopOpenFolder_SystemSpecialFolder ( TALLOC_CTX *  mem_ctx,
struct emsmdbp_context emsmdbp_ctx,
struct OpenFolder_req  request,
struct OpenFolder_repl *  response 
) [static]

Open a System or Special folder object.

Parameters:
mem_ctxpointer to the memory context
emsmdbp_ctxpointer to the emsmdb provider context
requestOpenFolder request
responsepointer to the OpenFolder response
Returns:
MAPI_E_SUCCESS on success, otherwise MAPI error

Referenced by EcDoRpc_RopOpenFolder().


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/