diff options
Diffstat (limited to 'src/snappy/src/snappy.erl')
-rw-r--r-- | src/snappy/src/snappy.erl | 56 |
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). |