Current section

Files

Jump to
shards src hash jumping_hash.erl
Raw

src/hash/jumping_hash.erl

-module(jumping_hash).
-export([compute/2]).
-on_load(init/0).
-define(APPNAME, shards).
-define(LIBNAME, jumping_hash).
%%%===================================================================
%%% API
%%%===================================================================
%% @hidden
compute(_, _) ->
not_loaded(?LINE).
%% @private
not_loaded(Line) ->
erlang:nif_error({not_loaded, [{module, ?MODULE}, {line, Line}]}).
%%%===================================================================
%%% NIF init
%%%===================================================================
%% @hidden
init() ->
SoName = case code:priv_dir(?APPNAME) of
{error, bad_name} ->
case filelib:is_dir(filename:join(["..", priv])) of
true ->
filename:join(["..", priv, ?LIBNAME]);
_ ->
filename:join([priv, ?LIBNAME])
end;
Dir ->
filename:join(Dir, ?LIBNAME)
end,
erlang:load_nif(SoName, 0).