save one pointer indirection
This commit is contained in:
parent
9485b349c0
commit
8c0593dd05
2 changed files with 9 additions and 8 deletions
|
@ -13,7 +13,7 @@ But this module could also be used as a general key-value store to replace:
|
||||||
The following functions were implemented:
|
The following functions were implemented:
|
||||||
|
|
||||||
* `open/1`: equivalent to `emdb:open(DirName, 10485760)`.
|
* `open/1`: equivalent to `emdb:open(DirName, 10485760)`.
|
||||||
* `open/1`: equivalent to `emdb:open(DirName, 10485760, 0)`.
|
* `open/2`: equivalent to `emdb:open(DirName, 10485760, 0)`.
|
||||||
* `open/3`: creates a new MDB database. This call also re-open an already existing one. Arguments are:
|
* `open/3`: creates a new MDB database. This call also re-open an already existing one. Arguments are:
|
||||||
* DirName: database directory name
|
* DirName: database directory name
|
||||||
* MapSize: database map size (see [map.hrl](http://gitorious.org/mdb/mdb/blobs/master/libraries/libmdb/mdb.h))
|
* MapSize: database map size (see [map.hrl](http://gitorious.org/mdb/mdb/blobs/master/libraries/libmdb/mdb.h))
|
||||||
|
@ -50,7 +50,8 @@ $ ./start.sh
|
||||||
9> none = Handle:get(<<"b">>).
|
9> none = Handle:get(<<"b">>).
|
||||||
|
|
||||||
%% delete a non-existing key <<"z">>
10> none = Handle:del(<<"z">>).
|
%% delete a non-existing key <<"z">>
10> none = Handle:del(<<"z">>).
|
||||||
11> {ok, <<"1">>} = Handle:get(<<"a">>).
|
|
||||||
|
%% ensure key <<"a">>'s value is still <<"1">>
11> {ok, <<"1">>} = Handle:get(<<"a">>).
|
||||||
%% update the value for key <<"a">>
|
%% update the value for key <<"a">>
|
||||||
12> ok = Handle:update(<<"a">>, <<"7">>).
|
12> ok = Handle:update(<<"a">>, <<"7">>).
|
||||||
|
|
||||||
|
|
|
@ -168,7 +168,7 @@ static ERL_NIF_TERM emdb_close_nif (ErlNifEnv * env,
|
||||||
|
|
||||||
HASH_DEL(emdb_map, node);
|
HASH_DEL(emdb_map, node);
|
||||||
|
|
||||||
mdb_env_close(node -> env);
|
mdb_env_close(handle);
|
||||||
emdb_free(node);
|
emdb_free(node);
|
||||||
|
|
||||||
return atom_ok;
|
return atom_ok;
|
||||||
|
@ -207,7 +207,7 @@ static ERL_NIF_TERM emdb_put_nif (ErlNifEnv * env,
|
||||||
if (! enif_inspect_iolist_as_binary(env, argv[2], &val))
|
if (! enif_inspect_iolist_as_binary(env, argv[2], &val))
|
||||||
return enif_make_badarg(env);
|
return enif_make_badarg(env);
|
||||||
|
|
||||||
if (mdb_txn_begin(node -> env, NULL, 0, & txn))
|
if (mdb_txn_begin(handle, NULL, 0, & txn))
|
||||||
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err2);
|
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err2);
|
||||||
|
|
||||||
mkey.mv_size = key.size;
|
mkey.mv_size = key.size;
|
||||||
|
@ -265,7 +265,7 @@ static ERL_NIF_TERM emdb_get_nif (ErlNifEnv * env,
|
||||||
mkey.mv_size = key.size;
|
mkey.mv_size = key.size;
|
||||||
mkey.mv_data = key.data;
|
mkey.mv_data = key.data;
|
||||||
|
|
||||||
if (mdb_txn_begin(node -> env, NULL, 0, & txn))
|
if (mdb_txn_begin(handle, NULL, 0, & txn))
|
||||||
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err1);
|
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err1);
|
||||||
|
|
||||||
if(mdb_get(txn, node -> dbi, & mkey, & mdata))
|
if(mdb_get(txn, node -> dbi, & mkey, & mdata))
|
||||||
|
@ -332,7 +332,7 @@ static ERL_NIF_TERM emdb_del_nif (ErlNifEnv * env,
|
||||||
mkey.mv_size = key.size;
|
mkey.mv_size = key.size;
|
||||||
mkey.mv_data = key.data;
|
mkey.mv_data = key.data;
|
||||||
|
|
||||||
if (mdb_txn_begin(node -> env, NULL, 0, & txn))
|
if (mdb_txn_begin(handle, NULL, 0, & txn))
|
||||||
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err);
|
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err);
|
||||||
|
|
||||||
ret = mdb_del(txn, node -> dbi, & mkey, NULL);
|
ret = mdb_del(txn, node -> dbi, & mkey, NULL);
|
||||||
|
@ -381,7 +381,7 @@ static ERL_NIF_TERM emdb_update_nif (ErlNifEnv * env,
|
||||||
if (! enif_inspect_iolist_as_binary(env, argv[2], &val))
|
if (! enif_inspect_iolist_as_binary(env, argv[2], &val))
|
||||||
return enif_make_badarg(env);
|
return enif_make_badarg(env);
|
||||||
|
|
||||||
if (mdb_txn_begin(node -> env, NULL, 0, & txn))
|
if (mdb_txn_begin(handle, NULL, 0, & txn))
|
||||||
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err2);
|
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err2);
|
||||||
|
|
||||||
mkey.mv_size = key.size;
|
mkey.mv_size = key.size;
|
||||||
|
@ -423,7 +423,7 @@ static ERL_NIF_TERM emdb_drop_nif (ErlNifEnv * env,
|
||||||
if (NULL == node)
|
if (NULL == node)
|
||||||
return enif_make_atom(env, EMDB_INVALID_HANDLE_ERR);
|
return enif_make_atom(env, EMDB_INVALID_HANDLE_ERR);
|
||||||
|
|
||||||
if (mdb_txn_begin(node -> env, NULL, 0, & txn))
|
if (mdb_txn_begin(handle, NULL, 0, & txn))
|
||||||
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err2);
|
FAIL_FAST(EMDB_TXN_BEGIN_ERR, err2);
|
||||||
|
|
||||||
ret = mdb_drop(txn, node -> dbi, 0);
|
ret = mdb_drop(txn, node -> dbi, 0);
|
||||||
|
|
Loading…
Reference in a new issue