Commit e40dae10 authored by Hallvard Furuseth's avatar Hallvard Furuseth
Browse files

Add mdb_env_<set,get>_userctx()

parent c99525f4
...@@ -802,6 +802,21 @@ int mdb_env_set_maxdbs(MDB_env *env, MDB_dbi dbs); ...@@ -802,6 +802,21 @@ int mdb_env_set_maxdbs(MDB_env *env, MDB_dbi dbs);
*/ */
int mdb_env_get_maxkeysize(MDB_env *env); int mdb_env_get_maxkeysize(MDB_env *env);
/** @brief Set application information associated with the #MDB_env.
*
* @param[in] env An environment handle returned by #mdb_env_create()
* @param[in] ctx An arbitrary pointer for whatever the application needs.
* @return A non-zero error value on failure and 0 on success.
*/
int mdb_env_set_userctx(MDB_env *env, void *ctx);
/** @brief Get the application information associated with the #MDB_env.
*
* @param[in] env An environment handle returned by #mdb_env_create()
* @return The pointer set by #mdb_env_set_userctx().
*/
void *mdb_env_get_userctx(MDB_env *env);
/** @brief Create a transaction for use with the environment. /** @brief Create a transaction for use with the environment.
* *
* The transaction handle may be discarded using #mdb_txn_abort() or #mdb_txn_commit(). * The transaction handle may be discarded using #mdb_txn_abort() or #mdb_txn_commit().
......
...@@ -1080,6 +1080,7 @@ struct MDB_env { ...@@ -1080,6 +1080,7 @@ struct MDB_env {
sem_t *me_rmutex; /* Shared mutexes are not supported */ sem_t *me_rmutex; /* Shared mutexes are not supported */
sem_t *me_wmutex; sem_t *me_wmutex;
#endif #endif
void *me_userctx; /**< User-settable context */
}; };
/** Nested transaction */ /** Nested transaction */
...@@ -7916,6 +7917,21 @@ mdb_env_get_flags(MDB_env *env, unsigned int *arg) ...@@ -7916,6 +7917,21 @@ mdb_env_get_flags(MDB_env *env, unsigned int *arg)
return MDB_SUCCESS; return MDB_SUCCESS;
} }
int
mdb_env_set_userctx(MDB_env *env, void *ctx)
{
if (!env)
return EINVAL;
env->me_userctx = ctx;
return MDB_SUCCESS;
}
void *
mdb_env_get_userctx(MDB_env *env)
{
return env ? env->me_userctx : NULL;
}
int int
mdb_env_get_path(MDB_env *env, const char **arg) mdb_env_get_path(MDB_env *env, const char **arg)
{ {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment