blob: 7d3d36a8d01659fd194be4cfd21c45a49e6b67e0 [file] [log] [blame]
%% Copyright 2011, Filipe David Manana <fdmanana@apache.org>
%% Web: http://github.com/fdmanana/snappy-erlang-nif
%%
%% Licensed under the Apache License, Version 2.0 (the "License"); you may not
%% use this file except in compliance with the License. You may obtain a copy of
%% the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
%% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
%% License for the specific language governing permissions and limitations under
%% the License.
-module(snappy).
-export([compress/1, decompress/1]).
-export([uncompressed_length/1, is_valid/1]).
-on_load(init/0).
init() ->
SoName = case code:priv_dir(?MODULE) of
{error, bad_name} ->
case filelib:is_dir(filename:join(["..", "priv"])) of
true ->
filename:join(["..", "priv", "snappy_nif"]);
false ->
filename:join(["priv", "snappy_nif"])
end;
Dir ->
filename:join(Dir, "snappy_nif")
end,
(catch erlang:load_nif(SoName, 0)),
case erlang:system_info(otp_release) of
"R13B03" -> true;
_ -> ok
end.
compress(_IoList) ->
exit(snappy_nif_not_loaded).
decompress(_IoList) ->
exit(snappy_nif_not_loaded).
uncompressed_length(_IoList) ->
exit(snappy_nif_not_loaded).
is_valid(_IoList) ->
exit(snappy_nif_not_loaded).