Created
January 26, 2018 02:17
-
-
Save yosukehara/fe5a2810905e97feae95fc30a8323bd0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --cc c_src/eleveldb.cc | |
index 94e0e4f,a453a8e..0000000 | |
--- a/c_src/eleveldb.cc | |
+++ b/c_src/eleveldb.cc | |
@@@ -485,11 -514,13 +514,18 @@@ ERL_NIF_TERM parse_open_option(ErlNifEn | |
else if (option[0] == eleveldb::ATOM_EXPIRY_ENABLED) | |
{ | |
- if (option[1] == eleveldb::ATOM_TRUE) | |
+ if (option[1] == eleveldb::ATOM_ENABLED | |
+ || option[1] == eleveldb::ATOM_ON | |
+ || option[1] == eleveldb::ATOM_TRUE) | |
{ | |
if (NULL==opts.expiry_module.get()) | |
++<<<<<<< HEAD | |
+ opts.expiry_module.assign(leveldb::ExpiryModule::CreateExpiryModule()); | |
+ ((leveldb::ExpiryModuleOS *)opts.expiry_module.get())->expiry_enabled = true; | |
++======= | |
+ opts.expiry_module.assign(leveldb::ExpiryModule::CreateExpiryModule(&eleveldb::leveldb_callback)); | |
+ ((leveldb::ExpiryModuleOS *)opts.expiry_module.get())->SetExpiryEnabled(true); | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
} // if | |
else | |
{ | |
@@@ -503,25 -534,32 +539,42 @@@ | |
if (enif_get_ulong(env, option[1], &minutes)) | |
{ | |
if (NULL==opts.expiry_module.get()) | |
++<<<<<<< HEAD | |
+ opts.expiry_module.assign(leveldb::ExpiryModule::CreateExpiryModule()); | |
+ ((leveldb::ExpiryModuleOS *)opts.expiry_module.get())->expiry_minutes = minutes; | |
++======= | |
+ opts.expiry_module.assign(leveldb::ExpiryModule::CreateExpiryModule(&eleveldb::leveldb_callback)); | |
+ ((leveldb::ExpiryModuleOS *)opts.expiry_module.get())->SetExpiryMinutes(minutes); | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
} // if | |
+ else if (option[1] == eleveldb::ATOM_UNLIMITED) | |
+ { | |
+ if (NULL==opts.expiry_module.get()) | |
+ opts.expiry_module.assign(leveldb::ExpiryModule::CreateExpiryModule(&eleveldb::leveldb_callback)); | |
+ ((leveldb::ExpiryModuleOS *)opts.expiry_module.get())->SetExpiryUnlimited(true); | |
+ } // else if | |
+ | |
} // else if | |
else if (option[0] == eleveldb::ATOM_WHOLE_FILE_EXPIRY) | |
{ | |
- if (option[1] == eleveldb::ATOM_TRUE) | |
+ if (option[1] == eleveldb::ATOM_WHOLE_FILE) | |
{ | |
if (NULL==opts.expiry_module.get()) | |
++<<<<<<< HEAD | |
+ opts.expiry_module.assign(leveldb::ExpiryModule::CreateExpiryModule()); | |
+ ((leveldb::ExpiryModuleOS *)opts.expiry_module.get())->whole_file_expiry = true; | |
++======= | |
+ opts.expiry_module.assign(leveldb::ExpiryModule::CreateExpiryModule(&eleveldb::leveldb_callback)); | |
+ ((leveldb::ExpiryModuleOS *)opts.expiry_module.get())->SetWholeFileExpiryEnabled(true); | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
} // if | |
- else | |
+ else if (option[1] == eleveldb::ATOM_PER_ITEM) | |
{ | |
if (NULL!=opts.expiry_module.get()) | |
- ((leveldb::ExpiryModuleOS *)opts.expiry_module.get())->whole_file_expiry = false; | |
- } // else | |
+ ((leveldb::ExpiryModuleOS *)opts.expiry_module.get())->SetWholeFileExpiryEnabled(false); | |
+ } // else if | |
+ // else take default setting ... do nothing. | |
} // else if | |
- | |
} | |
return eleveldb::ATOM_OK; | |
diff --cc c_src/workitems.cc | |
index 911a45c,25174f1..0000000 | |
--- a/c_src/workitems.cc | |
+++ b/c_src/workitems.cc | |
@@@ -240,10 -240,10 +240,17 @@@ GetTask::DoWork( | |
else | |
return work_result(local_env(), ATOM_ERROR, status); | |
} | |
++<<<<<<< HEAD | |
return work_result(local_env(), ATOM_OK, value_bin); | |
} | |
++======= | |
++ | |
++ return work_result(local_env(), ATOM_OK, value_bin); | |
++} | |
++ | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
/** | |
* IterTask functions | |
*/ | |
diff --cc c_src/workitems.h | |
index 475b751,e65d2d7..0000000 | |
--- a/c_src/workitems.h | |
+++ b/c_src/workitems.h | |
@@@ -201,9 -201,9 +201,15 @@@ public | |
DbObjectPtr_t & _db_handle, | |
ERL_NIF_TERM _key_term, | |
leveldb::ReadOptions &_options); | |
++<<<<<<< HEAD | |
virtual ~GetTask(); | |
++======= | |
++ | |
++ virtual ~GetTask(); | |
++ | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
virtual work_result DoWork(); | |
}; // class GetTask | |
@@@ -282,9 -282,9 +288,15 @@@ public | |
CloseTask(ErlNifEnv* _owner_env, ERL_NIF_TERM _caller_ref, | |
DbObjectPtr_t & _db_handle); | |
++<<<<<<< HEAD | |
+ | |
+ virtual ~CloseTask(); | |
+ | |
++======= | |
+ | |
+ virtual ~CloseTask(); | |
+ | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
virtual work_result DoWork(); | |
}; // class CloseTask | |
diff --cc src/eleveldb.erl | |
index d700ce5,e5d60f3..0000000 | |
--- a/src/eleveldb.erl | |
+++ b/src/eleveldb.erl | |
@@@ -536,6 -575,7 +583,10 @@@ test_open(TestDir) - | |
?assertEqual(ok, ?MODULE:put(Ref, <<"abc">>, <<"123">>, [])), | |
?assertEqual({ok, <<"123">>}, ?MODULE:get(Ref, <<"abc">>, [])), | |
?assertEqual(not_found, ?MODULE:get(Ref, <<"def">>, [])), | |
++<<<<<<< HEAD | |
++======= | |
+ ?assertEqual({ok, 1}, ?MODULE:count(Ref)), | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
assert_close(Ref). | |
test_open_many(TestDir, HowMany) -> | |
@@@ -557,7 -597,8 +608,12 @@@ | |
end, WorkSet), | |
lists:foreach( | |
fun({Ref, Key, Val}) -> | |
++<<<<<<< HEAD | |
+ ?assertEqual({ok, Val}, ?MODULE:get(Ref, Key, [])) | |
++======= | |
+ ?assertEqual({ok, Val}, ?MODULE:get(Ref, Key, [])), | |
+ ?assertEqual({ok, 1}, ?MODULE:count(Ref)) | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
end, WorkSet), | |
lists:foreach(fun assert_close/1, [R || {R, _, _} <- WorkSet]). | |
@@@ -574,6 -615,7 +630,10 @@@ test_fold(TestDir) - | |
?assertEqual( | |
[{<<"abc">>, <<"123">>}, {<<"def">>, <<"456">>}, {<<"hij">>, <<"789">>}], | |
lists:reverse(?MODULE:fold(Ref, fun accumulate/2, [], []))), | |
++<<<<<<< HEAD | |
++======= | |
+ ?assertEqual({ok, 3}, ?MODULE:count(Ref)), | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
assert_close(Ref). | |
test_fold_keys(TestDir) -> | |
@@@ -684,6 -726,7 +744,10 @@@ run_load(TestDir, IntSeq) - | |
fun({Key, Val}) -> | |
?assertEqual({ok, Val}, ?MODULE:get(Ref, Key, [])) | |
end, KVOut), | |
++<<<<<<< HEAD | |
++======= | |
+ ?assertEqual({ok, length(IntSeq)}, ?MODULE:count(Ref)), | |
++>>>>>>> 61c1f5b3cffa61372e97598e22d6b3ec274bd73d | |
assert_close(Ref). | |
%% =================================================================== |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment