]> git.sur5r.net Git - openldap/blobdiff - libraries/liblmdb/lmdb.h
Merge remote-tracking branch 'origin/mdb.master' into OPENLDAP_REL_ENG_2_4
[openldap] / libraries / liblmdb / lmdb.h
index ff8201786cf5d9379491b980d51ce785c13587dd..2ebd43f3daedf7817786deaddfb7f97821e168d9 100644 (file)
@@ -184,7 +184,7 @@ typedef int mdb_filehandle_t;
 /** Library minor version */
 #define MDB_VERSION_MINOR      9
 /** Library patch version */
-#define MDB_VERSION_PATCH      10
+#define MDB_VERSION_PATCH      11
 
 /** Combine args a,b,c into a single integer for easy version comparisons */
 #define MDB_VERINT(a,b,c)      (((a) << 24) | ((b) << 16) | (c))
@@ -194,7 +194,7 @@ typedef int mdb_filehandle_t;
        MDB_VERINT(MDB_VERSION_MAJOR,MDB_VERSION_MINOR,MDB_VERSION_PATCH)
 
 /** The release date of this library version */
-#define MDB_VERSION_DATE       "November 11, 2013"
+#define MDB_VERSION_DATE       "January 15, 2014"
 
 /** A stringifier for the version info */
 #define MDB_VERSTR(a,b,c,d)    "MDB " #a "." #b "." #c ": (" d ")"
@@ -263,8 +263,6 @@ typedef int  (MDB_cmp_func)(const MDB_val *a, const MDB_val *b);
 typedef void (MDB_rel_func)(MDB_val *item, void *oldptr, void *newptr, void *relctx);
 
 /** @defgroup  mdb_env Environment Flags
- *
- *     Values do not overlap Database Flags.
  *     @{
  */
        /** mmap at a fixed address (experimental) */
@@ -292,8 +290,6 @@ typedef void (MDB_rel_func)(MDB_val *item, void *oldptr, void *newptr, void *rel
 /** @} */
 
 /**    @defgroup       mdb_dbi_open    Database Flags
- *
- *     Values do not overlap Environment Flags.
  *     @{
  */
        /** use reverse string keys */
@@ -806,6 +802,38 @@ 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 A callback function for most MDB assert() failures,
+        * called before printing the message and aborting.
+        *
+        * @param[in] env An environment handle returned by #mdb_env_create().
+        * @param[in] msg The assertion message, not including newline.
+        */
+typedef void MDB_assert_func(MDB_env *env, const char *msg);
+
+       /** Set or reset the assert() callback of the environment.
+        * Disabled if liblmdb is buillt with NDEBUG.
+        * @note This hack should become obsolete as lmdb's error handling matures.
+        * @param[in] env An environment handle returned by #mdb_env_create().
+        * @parem[in] func An #MDB_assert_func function, or 0.
+        * @return A non-zero error value on failure and 0 on success.
+        */
+int  mdb_env_set_assert(MDB_env *env, MDB_assert_func *func);
+
        /** @brief Create a transaction for use with the environment.
         *
         * The transaction handle may be discarded using #mdb_txn_abort() or #mdb_txn_commit().