1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
%% 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).
|