Skip to content

Instantly share code, notes, and snippets.

@yosukehara
Created January 26, 2018 02:17
Show Gist options
  • Save yosukehara/fe5a2810905e97feae95fc30a8323bd0 to your computer and use it in GitHub Desktop.
Save yosukehara/fe5a2810905e97feae95fc30a8323bd0 to your computer and use it in GitHub Desktop.
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