summaryrefslogtreecommitdiff
path: root/src/snappy/src/snappy.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/snappy/src/snappy.erl')
-rw-r--r--src/snappy/src/snappy.erl56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/snappy/src/snappy.erl b/src/snappy/src/snappy.erl
new file mode 100644
index 000000000..7d3d36a8d
--- /dev/null
+++ b/src/snappy/src/snappy.erl
@@ -0,0 +1,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).