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);
*/
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.
*
* The transaction handle may be discarded using #mdb_txn_abort() or #mdb_txn_commit().
......
......@@ -1080,6 +1080,7 @@ struct MDB_env {
sem_t *me_rmutex; /* Shared mutexes are not supported */
sem_t *me_wmutex;
#endif
void *me_userctx; /**< User-settable context */
};
/** Nested transaction */
......@@ -7916,6 +7917,21 @@ mdb_env_get_flags(MDB_env *env, unsigned int *arg)
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
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