SYNOPSIS

#include <stdio.h>

#include <time.h>

#include <unistd.h>

#include <stdint.h>

#include <stdbool.h>

#include <tdb.h>

#include <ldb.h>

#include <talloc.h>

#include <util/debug.h>

#include 'libmapi/libmapi.h'

Functions

enum mapistore_error mapistore_add_context (struct mapistore_context *, const char *, const char *, uint64_t, uint32_t *, void **)

enum mapistore_error mapistore_add_context_ref_count (struct mapistore_context *, uint32_t)

const char * mapistore_backend_get_installdir (void)

init_backend_fn * mapistore_backend_load (TALLOC_CTX *, const char *)

struct backend_context * mapistore_backend_lookup (struct backend_context_list *, uint32_t)

struct backend_context * mapistore_backend_lookup_by_name (TALLOC_CTX *, const char *)

struct backend_context * mapistore_backend_lookup_by_uri (struct backend_context_list *, const char *)

enum mapistore_error mapistore_backend_register (const void *)

bool mapistore_backend_run_init (init_backend_fn *)

enum mapistore_error mapistore_del_context (struct mapistore_context *, uint32_t)

const char * mapistore_errstr (enum mapistore_error)

enum mapistore_error mapistore_folder_create_folder (struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, uint64_t, struct SRow *, void **)

enum mapistore_error mapistore_folder_create_message (struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, uint64_t, uint8_t, void **)

enum mapistore_error mapistore_folder_delete (struct mapistore_context *, uint32_t, void *, uint8_t)

enum mapistore_error mapistore_folder_delete_message (struct mapistore_context *, uint32_t, void *, uint64_t, uint8_t)

enum mapistore_error mapistore_folder_get_child_count (struct mapistore_context *, uint32_t, void *, enum mapistore_table_type, uint32_t *)

enum mapistore_error mapistore_folder_get_deleted_fmids (struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, enum mapistore_table_type, uint64_t, struct UI8Array_r **, uint64_t *)

enum mapistore_error mapistore_folder_open_folder (struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, uint64_t, void **)

enum mapistore_error mapistore_folder_open_message (struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, uint64_t, bool, void **)

enum mapistore_error mapistore_get_queued_notifications (struct mapistore_context *, struct mapistore_subscription *, struct mapistore_notification_list **)

enum mapistore_error mapistore_get_queued_notifications_named (struct mapistore_context *, const char *, struct mapistore_notification_list **)

enum mapistore_error mapistore_indexing_get_new_folderID (struct mapistore_context *, uint64_t *)

enum mapistore_error mapistore_indexing_get_new_folderID_as_user (struct mapistore_context *, const char *, uint64_t *)

enum mapistore_error mapistore_indexing_get_new_folderIDs (struct mapistore_context *, TALLOC_CTX *, uint64_t, struct UI8Array_r **)

enum mapistore_error mapistore_indexing_record_add_fid (struct mapistore_context *, uint32_t, const char *, uint64_t)

enum mapistore_error mapistore_indexing_record_add_mid (struct mapistore_context *, uint32_t, const char *, uint64_t)

enum mapistore_error mapistore_indexing_record_del_fid (struct mapistore_context *, uint32_t, const char *, uint64_t, uint8_t)

enum mapistore_error mapistore_indexing_record_del_mid (struct mapistore_context *, uint32_t, const char *, uint64_t, uint8_t)

enum mapistore_error mapistore_indexing_record_get_uri (struct mapistore_context *, const char *, TALLOC_CTX *, uint64_t, char **, bool *)

enum mapistore_error mapistore_indexing_reserve_fmid_range (struct mapistore_context *, uint64_t, uint64_t *)

struct mapistore_context * mapistore_init (TALLOC_CTX *, struct loadparm_context *, const char *)

enum mapistore_error mapistore_message_get_message_data (struct mapistore_context *, uint32_t, void *, TALLOC_CTX *, struct mapistore_message **)

enum mapistore_error mapistore_message_modify_recipients (struct mapistore_context *, uint32_t, void *, struct SPropTagArray *, uint16_t, struct mapistore_message_recipient *)

enum mapistore_error mapistore_message_save (struct mapistore_context *, uint32_t, void *, TALLOC_CTX *)

enum mapistore_error mapistore_message_set_read_flag (struct mapistore_context *, uint32_t, void *, uint8_t)

enum mapistore_error mapistore_message_submit (struct mapistore_context *, uint32_t, void *, enum SubmitFlags)

enum mapistore_error mapistore_namedprops_create_id (struct namedprops_context *, struct MAPINAMEID, uint16_t)

enum mapistore_error mapistore_namedprops_get_mapped_id (struct namedprops_context *, struct MAPINAMEID, uint16_t *)

enum mapistore_error mapistore_namedprops_get_nameid (struct namedprops_context *, uint16_t, TALLOC_CTX *mem_ctx, struct MAPINAMEID **)

enum mapistore_error mapistore_namedprops_get_nameid_type (struct namedprops_context *, uint16_t, uint16_t *)

enum mapistore_error mapistore_namedprops_next_unused_id (struct namedprops_context *, uint16_t *)

enum mapistore_error mapistore_release (struct mapistore_context *)

enum mapistore_error mapistore_replica_mapping_guid_to_replid (struct mapistore_context *, const char *username, const struct GUID *, uint16_t *)

enum mapistore_error mapistore_replica_mapping_replid_to_guid (struct mapistore_context *, const char *username, uint16_t, struct GUID *)

enum mapistore_error mapistore_search_context_by_uri (struct mapistore_context *, const char *, uint32_t *, void **)

enum mapistore_error mapistore_set_connection_info (struct mapistore_context *, struct ldb_context *, struct openchangedb_context *, const char *)

void mapistore_set_default_indexing_url (const char *)

enum mapistore_error mapistore_set_mapping_path (const char *)

Detailed Description

MAPISTORE general API.

This header contains general functions, primarily for users of the store (rather than storage providers).

Function Documentation

enum \fBmapistore_error\fP mapistore_add_context (struct mapistore_context *mstore_ctx, const char *owner, const char *uri, uint64_tfid, uint32_t *context_id, void **backend_object)

Add a new connection context to mapistore

Parameters:

mstore_ctx pointer to the mapistore context

uri the connection context URI

context_id pointer to the context identifier the function returns

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References mapistore_backend_create_context(), MAPISTORE_ERR_CONTEXT_FAILED, MAPISTORE_ERR_INVALID_NAMESPACE, mapistore_indexing_add(), and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_add_context_ref_count (struct mapistore_context *mstore_ctx, uint32_tcontext_id)

Increase the reference counter of an existing context

Parameters:

mstore_ctx pointer to the mapistore context

contex_id the context identifier referencing the context to update

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References mapistore_backend_add_ref_count(), mapistore_backend_lookup(), MAPISTORE_ERR_INVALID_PARAMETER, and MAPISTORE_ERROR.

const char* mapistore_backend_get_installdir (void)

Return the full path where mapistore backends are installed.

Returns:

Pointer to the full path where backends are installed.

Referenced by mapistore_backend_load().

init_backend_fn* mapistore_backend_load (TALLOC_CTX *mem_ctx, const char *path)

Load the initialization functions from backends DSO

Parameters:

mem_ctx pointer to the memory context

path pointer to the backend's DSO folder

Returns:

allocated array of functions pointers to initialization functions on success, otherwise NULL.

References mapistore_backend_get_installdir().

Referenced by mapistore_backend_init().

struct backend_context* mapistore_backend_lookup (struct backend_context_list *backend_list_ctx, uint32_tcontext_id)

find the context matching given context identifier

Parameters:

backend_list_ctx pointer to the backend context list

context_id the context identifier to search

Returns:

Pointer to the mapistore_backend context on success, otherwise NULL

Referenced by mapistore_add_context_ref_count(), mapistore_del_context(), mapistore_folder_create_folder(), mapistore_folder_create_message(), mapistore_folder_delete(), mapistore_folder_delete_message(), mapistore_folder_get_child_count(), mapistore_folder_get_deleted_fmids(), mapistore_folder_open_folder(), mapistore_folder_open_message(), mapistore_indexing_record_add_fmid(), mapistore_indexing_record_del_fmid(), mapistore_message_get_message_data(), mapistore_message_modify_recipients(), mapistore_message_save(), mapistore_message_set_read_flag(), and mapistore_message_submit().

struct backend_context* mapistore_backend_lookup_by_name (TALLOC_CTX *mem_ctx, const char *name)

Return a pointer on backend functions given its name

Parameters:

mem_ctx pointer to the memory context

name the backend name to lookup

Returns:

Allocated pointer to the mapistore_backend context on success, otherwise NULL

Referenced by mapistore_mgmt_generate_uri().

struct backend_context* mapistore_backend_lookup_by_uri (struct backend_context_list *backend_list_ctx, const char *uri)

find the context matching given uri string

Parameters:

backend_list_ctx pointer to the backend context list

uri the uri string to search

Returns:

Pointer to the mapistore_backend context on success, otherwise NULL

Referenced by mapistore_search_context_by_uri().

enum \fBmapistore_error\fP mapistore_backend_register (const void *_backend)

Register mapistore backends

Parameters:

backend pointer to the mapistore backend to register

Returns:

MAPISTORE_SUCCESS on success

References MAPISTORE_ERR_INVALID_PARAMETER, and MAPISTORE_SUCCESS.

bool mapistore_backend_run_init (init_backend_fn *fns)

Run specified initialization functions.

Parameters:

fns pointer to an array of mapistore backends initialization functions

Returns:

true on success, otherwise false

Referenced by mapistore_backend_init().

enum \fBmapistore_error\fP mapistore_del_context (struct mapistore_context *mstore_ctx, uint32_tcontext_id)

Delete an existing connection context from mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the context to delete

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References mapistore_backend_delete_context(), mapistore_backend_lookup(), MAPISTORE_ERR_INVALID_PARAMETER, MAPISTORE_ERR_REF_COUNT, MAPISTORE_ERROR, and MAPISTORE_SUCCESS.

const char* mapistore_errstr (enum \fBmapistore_error\fPmapistore_err)

return a string explaining what a mapistore error constant means.

Parameters:

mapistore_err the mapistore error constant

Returns:

constant string

References MAPISTORE_ERR_ALREADY_INITIALIZED, MAPISTORE_ERR_BACKEND_INIT, MAPISTORE_ERR_BACKEND_REGISTER, MAPISTORE_ERR_CONTEXT_FAILED, MAPISTORE_ERR_CORRUPTED, MAPISTORE_ERR_DATABASE_INIT, MAPISTORE_ERR_DATABASE_OPS, MAPISTORE_ERR_DENIED, MAPISTORE_ERR_EXIST, MAPISTORE_ERR_INVALID_DATA, MAPISTORE_ERR_INVALID_NAMESPACE, MAPISTORE_ERR_INVALID_PARAMETER, MAPISTORE_ERR_INVALID_URI, MAPISTORE_ERR_MSG_RCV, MAPISTORE_ERR_MSG_SEND, MAPISTORE_ERR_NO_DIRECTORY, MAPISTORE_ERR_NO_MEMORY, MAPISTORE_ERR_NOT_FOUND, MAPISTORE_ERR_NOT_IMPLEMENTED, MAPISTORE_ERR_NOT_INITIALIZED, MAPISTORE_ERR_REF_COUNT, MAPISTORE_ERROR, and MAPISTORE_SUCCESS.

Referenced by mapistore_init().

enum \fBmapistore_error\fP mapistore_folder_create_folder (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *folder, TALLOC_CTX *mem_ctx, uint64_tfid, struct SRow *aRow, void **child_folder)

Create a directory in mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where the directory will be created

parent_fid the parent folder identifier

new_fid the folder identifier for the new folder

aRow pointer to MAPI data structures with properties to be added to the new folder

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_folder_create_message (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *folder, TALLOC_CTX *mem_ctx, uint64_tmid, uint8_tassociated, void **messagep)

Create a message in mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where the messagewill be created

parent_fid the parent folder identifier

mid the message identifier to create

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_folder_delete (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *folder, uint8_tflags)

Remove a directory in mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend

parent_fid the parent folder identifier

fid the folder identifier representing the folder to delete

flags flags that control the behaviour of the operation

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), MAPISTORE_ERR_EXIST, MAPISTORE_ERR_INVALID_PARAMETER, and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_folder_delete_message (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *folder, uint64_tmid, uint8_tflags)

Delete a message from mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where the message's to be located is stored

mid the message identifier of the folder to delete

flags flags that control the behaviour of the operation (MAPISTORE_SOFT_DELETE or MAPISTORE_PERMANENT_DELETE)

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_folder_get_child_count (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *folder, enum mapistore_table_typetable_type, uint32_t *RowCount)

Retrieve the number of child messages within a mapistore folder

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend

fid the folder identifier

RowCount pointer to the count result to return

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_folder_get_deleted_fmids (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *folder, TALLOC_CTX *mem_ctx, enum mapistore_table_typetable_type, uint64_tchange_num, struct UI8Array_r **fmidsp, uint64_t *cnp)

Get the array of deleted items following a specific change number

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where the message's to be located is stored

folder the folder backend object

mem_ctx the TALLOC_CTX that should be used as parent for the returned array

table_type the type of object that we want to take into account

change_num the reference change number

fmidsp a pointer to the returned array

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_folder_open_folder (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *folder, TALLOC_CTX *mem_ctx, uint64_tfid, void **child_folder)

Open a directory in mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where the directory will be opened

parent_fid the parent folder identifier

fid folder identifier to open

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_folder_open_message (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *folder, TALLOC_CTX *mem_ctx, uint64_tmid, boolread_write, void **messagep)

Open a message in mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where the directory will be opened

parent_fid the parent folder identifier

mid the message identifier to open

pointer to the mapistore_message structure

Returns:

MAPISTORE SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_get_queued_notifications (struct mapistore_context *mstore_ctx, struct mapistore_subscription *s, struct mapistore_notification_list **nl)

Return the list of pending mapistore notifications within the queue pointed by the mapistore subscription structure.

Parameters:

mstore_ctx pointer to the mapistore context

s pointer to the mapistore subscription where the mqueue file descriptor is stored

nl pointer on pointer to the list of mapistore noficiations to return

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_ERR_INVALID_PARAMETER, MAPISTORE_ERR_NOT_FOUND, MAPISTORE_ERR_NOT_INITIALIZED, and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_get_queued_notifications_named (struct mapistore_context *mstore_ctx, const char *mqueue_name, struct mapistore_notification_list **nl)

Return the list of pending mapistore notifications available on the queue name specified in argument.

Parameters:

mstore_ctx pointer to the mapistore context

mqueue_name the name of the queue to open

nl pointer on pointer to the list of mapistore notifications to return

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error.

References MAPISTORE_ERR_INVALID_PARAMETER, MAPISTORE_ERR_NOT_FOUND, MAPISTORE_ERR_NOT_INITIALIZED, and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_indexing_get_new_folderID (struct mapistore_context *mstore_ctx, uint64_t *fid)

Allocates a new FolderID and returns it

Parameters:

mstore_ctx pointer to the mapistore context

fid pointer to the fid value the function returns

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References mapistore_indexing_get_new_folderID_as_user().

enum \fBmapistore_error\fP mapistore_indexing_get_new_folderID_as_user (struct mapistore_context *mstore_ctx, const char *username, uint64_t *fid)

Allocates a new FolderID for a specific user and returns it

Parameters:

mstore_ctx pointer to the mapistore context

username name of the mailbox

fid pointer to the fid value the function returns

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_SUCCESS.

Referenced by mapistore_indexing_get_new_folderID().

enum \fBmapistore_error\fP mapistore_indexing_get_new_folderIDs (struct mapistore_context *mstore_ctx, TALLOC_CTX *mem_ctx, uint64_tmax, struct UI8Array_r **fids_p)

Allocates a batch of new folder ids and returns them

Parameters:

mstore_ctx pointer to the mapistore context

mem_ctx memory context where the fid will be allocated

max number of fids to allocate

fids_p pointer array of fids values the function returns

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_indexing_record_add_fid (struct mapistore_context *mstore_ctx, uint32_tcontext_id, const char *username, uint64_tfid)

Add a fid record to the indexing database

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the indexing database to update

fid the fid to add

Note:

This is a wrapper to the internal common mapistore_indexing_record_add_fmid function.

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References mapistore_indexing_record_add_fmid().

enum \fBmapistore_error\fP mapistore_indexing_record_add_mid (struct mapistore_context *mstore_ctx, uint32_tcontext_id, const char *username, uint64_tmid)

Add a mid record to the indexing database

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the indexing database to update

mid the mid to add

Note:

This is a wrapper to the internal common mapistore_indexing_record_add_fmid function.

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References mapistore_indexing_record_add_fmid().

enum \fBmapistore_error\fP mapistore_indexing_record_del_fid (struct mapistore_context *mstore_ctx, uint32_tcontext_id, const char *username, uint64_tfid, uint8_tflags)

Delete a fid record from the indexing database

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the indexing database to update

fid the fid to remove

flags the type of deletion MAPISTORE_SOFT_DELETE or MAPISTORE_PERMANENT_DELETE

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References mapistore_indexing_record_del_fmid().

enum \fBmapistore_error\fP mapistore_indexing_record_del_mid (struct mapistore_context *mstore_ctx, uint32_tcontext_id, const char *username, uint64_tmid, uint8_tflags)

Delete a mid record from the indexing database

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the indexing database to update

mid the mid to remove

flags the type of deletion MAPISTORE_SOFT_DELETE or MAPISTORE_PERMANENT_DELETE

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References mapistore_indexing_record_del_fmid().

enum \fBmapistore_error\fP mapistore_indexing_record_get_uri (struct mapistore_context *mstore_ctx, const char *username, TALLOC_CTX *mem_ctx, uint64_tfmid, char **urip, bool *soft_deletedp)

Returns record data

Parameters:

mstore_ctx pointer to the mapistore context

username the name of the account where to look for the indexing database

mem_ctx pointer to the memory context

fmid the fmid/key to the record

urip pointer to the uri pointer

soft_deletedp pointer to the soft deleted pointer

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_ERR_NOT_INITIALIZED, MAPISTORE_ERROR, and mapistore_indexing_add().

enum \fBmapistore_error\fP mapistore_indexing_reserve_fmid_range (struct mapistore_context *mstore_ctx, uint64_trange_len, uint64_t *first_fmidp)

Reserve a range of FMID

Parameters:

mstore_ctx pointer to the mapistore context

range_len size of the range of fmids to reserve

first_fmidp pointer to the first reserved fid value the function returns

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_ERR_INVALID_PARAMETER, mapistore_indexing_search(), and MAPISTORE_SUCCESS.

struct mapistore_context* mapistore_init (TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, const char *path)

Initialize the mapistore context

Parameters:

mem_ctx pointer to the memory context

lp_ctx loadparm_context to get smb.conf options

path the path to the location to load the backend providers from (NULL for default)

Returns:

allocate mapistore context on success, otherwise NULL

References mapistore_backend_init(), mapistore_errstr(), mapistore_set_default_indexing_url(), mapistore_set_mapping_path(), and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_message_get_message_data (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *message, TALLOC_CTX *mem_ctx, struct mapistore_message **msg)

Modify recipients of a message in mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where properties will be stored

mid the identifier referencing the message the array of recipient rows the number of elements in the array

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_message_modify_recipients (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *message, struct SPropTagArray *columns, uint16_tcount, struct mapistore_message_recipient *recipients)

Modify recipients of a message in mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where properties will be stored

mid the identifier referencing the message the array of recipient rows the number of elements in the array

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_message_save (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *message, TALLOC_CTX *mem_ctx)

Commit the changes made to a message in mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where the message's changes will be saved

mid the message identifier to save

flags flags associated to the commit operation

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_message_set_read_flag (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *message, uint8_tflag)

Commit the changes made to a message in mapistore

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where the message's changes will be saved

mid the message identifier to save

flags flags associated to the commit operation

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_message_submit (struct mapistore_context *mstore_ctx, uint32_tcontext_id, void *message, enum SubmitFlagsflags)

Submits a message for sending.

Parameters:

mstore_ctx pointer to the mapistore context

context_id the context identifier referencing the backend where the message will be submitted

mid the message identifier representing the message to submit

flags flags associated to the submit operation

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE errors

References mapistore_backend_lookup(), and MAPISTORE_ERR_INVALID_PARAMETER.

enum \fBmapistore_error\fP mapistore_namedprops_create_id (struct namedprops_context *nprops, struct MAPINAMEIDnameid, uint16_tmapped_id)

return the mapped property ID matching the nameid structure passed in parameter.

Parameters:

ldb_ctx pointer to the namedprops ldb context

nameid the MAPINAMEID structure to lookup

propID pointer to the property ID the function returns

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR

References MAPISTORE_ERROR.

enum \fBmapistore_error\fP mapistore_namedprops_get_mapped_id (struct namedprops_context *nprops, struct MAPINAMEIDnameid, uint16_t *propID)

return the mapped property ID matching the nameid structure passed in parameter.

Parameters:

ldb_ctx pointer to the namedprops ldb context

nameid the MAPINAMEID structure to lookup

propID pointer to the property ID the function returns

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR

References MAPISTORE_ERROR.

enum \fBmapistore_error\fP mapistore_namedprops_get_nameid (struct namedprops_context *nprops, uint16_tpropID, TALLOC_CTX *mem_ctx, struct MAPINAMEID **nameidp)

return the nameid structture matching the mapped property ID passed in parameter.

Parameters:

ldb_ctx pointer to the namedprops ldb context

propID the property ID to lookup

nameid pointer to the MAPINAMEID structure the function returns

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR

References MAPISTORE_ERROR.

enum \fBmapistore_error\fP mapistore_namedprops_get_nameid_type (struct namedprops_context *nprops, uint16_tpropID, uint16_t *propTypeP)

return the type matching the mapped property ID passed in parameter.

Parameters:

ldb_ctx pointer to the namedprops ldb context

propID the property ID to lookup

propTypeP pointer to the uint16_t that will receive the property type

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE_ERROR

References MAPISTORE_ERROR, and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_namedprops_next_unused_id (struct namedprops_context *nprops, uint16_t *highest_id)

Returns the next unmapped property ID

Parameters:

nprops pointer to the namedprops context

highest_id pointer to the next unused id to return

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_ERR_INVALID_PARAMETER, and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_release (struct mapistore_context *mstore_ctx)

Release the mapistore context and destroy any data associated

Parameters:

mstore_ctx pointer to the mapistore context

Note:

The function needs to rely on talloc destructors which is not implemented in code yet.

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_ERR_NOT_INITIALIZED, and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_replica_mapping_guid_to_replid (struct mapistore_context *mstore_ctx, const char *username, const struct GUID *guidP, uint16_t *replidP)

Search a replica guid in the database, creates it if it does not exist

Parameters:

mstore_ctx pointer to the mapistore context

guidP the replica guid

replidP pointer to the returned replica id

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_ERROR, and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_replica_mapping_replid_to_guid (struct mapistore_context *mstore_ctx, const char *username, uint16_treplid, struct GUID *guidP)

Search a replica id in the database

Parameters:

mstore_ctx pointer to the mapistore context

replid the replica id

guidP pointer to the returned replica guid

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_ERROR, and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_search_context_by_uri (struct mapistore_context *mstore_ctx, const char *uri, uint32_t *context_id, void **backend_object)

Search for an existing context given its uri

Parameters:

mstore_ctx pointer to the mapistore context

uri the URI to lookup

context_id pointer to the context identifier to return

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References mapistore_backend_lookup_by_uri(), MAPISTORE_ERR_NOT_FOUND, MAPISTORE_ERROR, and MAPISTORE_SUCCESS.

enum \fBmapistore_error\fP mapistore_set_connection_info (struct mapistore_context *mstore_ctx, struct ldb_context *sam_ctx, struct openchangedb_context *oc_ctx, const char *username)

Set connection info for current mapistore context

Parameters:

mstore_ctx pointer to the mapistore context

oc_ctx pointer to the openchange ldb database

username pointer to the current username

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_ERR_INVALID_PARAMETER, MAPISTORE_ERR_NOT_INITIALIZED, and MAPISTORE_SUCCESS.

void mapistore_set_default_indexing_url (const char *url)

Set the default backend url. If none is set, a tdb file per user will be used.

Parameters:

url default backend url to be used

Referenced by mapistore_init().

enum \fBmapistore_error\fP mapistore_set_mapping_path (const char *path)

Set the mapping path

Parameters:

path pointer to the mapping path

Note:

The mapping path can be set unless id_mapping_context is initialized. If path is NULL and mapping path is not yet initialized, then mapping_path will be reset to its default value when the initialization routine is called.

Returns:

MAPISTORE_SUCCESS on success, otherwise MAPISTORE error

References MAPISTORE_ERR_NO_DIRECTORY, and MAPISTORE_SUCCESS.

Referenced by mapistore_init().

Author

Generated automatically by Doxygen for OpenChange mapistore library from the source code.