summaryrefslogtreecommitdiff
path: root/src/ht.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ht.erl')
-rw-r--r--src/ht.erl26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/ht.erl b/src/ht.erl
index 74f8ab4..cd4e57c 100644
--- a/src/ht.erl
+++ b/src/ht.erl
@@ -51,8 +51,8 @@ stop() ->
gen_server:call(?MODULE, stop).
size() ->
gen_server:call(?MODULE, size).
-add(Entry) ->
- gen_server:call(?MODULE, {add, Entry}).
+add(Hash) ->
+ gen_server:call(?MODULE, {add, Hash}).
root() ->
gen_server:call(?MODULE, root).
root(Version) ->
@@ -91,8 +91,8 @@ handle_call(stop, _From, State) ->
{stop, normal, stopped, State};
handle_call(size, _From, State) ->
{reply, State#tree.version + 1, State};
-handle_call({add, Entry}, _From, State) ->
- {reply, ok, add(State, Entry)};
+handle_call({add, Hash}, _From, State) ->
+ {reply, ok, add(State, Hash)};
handle_call(root, _From, State) ->
{NewState, Hash} = head(State, State#tree.version),
{reply, Hash, NewState};
@@ -245,11 +245,10 @@ first_left_node(Layer, Index, BAL) ->
false -> {Layer, Index}
end.
-%% @doc Add an entry but don't update the tree.
+%% @doc Add a hash but don't update the tree.
-spec add(tree(), binary()) -> tree().
-add(Tree = #tree{version = V, store = Store}, Entry) ->
- Tree#tree{version = V + 1,
- store = ts:add(Store, 0, mkleafhash(Entry))}.
+add(Tree = #tree{version = V, store = Store}, Hash) ->
+ Tree#tree{version = V + 1, store = ts:add(Store, 0, Hash)}.
%% @doc Return a new tree.
-spec new(list()) -> tree().
@@ -261,13 +260,14 @@ new([-1]) ->
new([]);
%% Initialise tree from db.
new([Version]) when is_integer(Version) ->
- foldl(fun(MTL, Tree) ->
+ foldl(fun(Hash, Tree) ->
%% Return value becomes Tree in next invocation.
- add(Tree, plop:serialise(MTL))
- end, new([]), [X || {X, _} <- db:get_by_index_sorted(0, Version)]);
-%% Initialise tree from List.
+ add(Tree, Hash)
+ end, new([]), [H || {_I, H, _E} <-
+ db:get_by_indices(0, Version, {sorted, true})]);
+%% Initialise tree from List with hashes.
new([List]) when is_list(List) ->
- foldl(fun(SerialisedMTL, Tree) -> add(Tree, SerialisedMTL) end,
+ foldl(fun(Hash, Tree) -> add(Tree, Hash) end,
new([]), List).
update(Tree) ->