-module(findf).
-export([start/0, start/1, stop/0]).
-export([find_file/1, open_file/1, read_file/1]).
-export([get_dirs/0, set_dirs/1, add_to_dirs/1, remove_from_dirs/1, get_exts/0,
set_exts/1, add_to_exts/1, remove_from_exts/1]).
-include("../include/findf.hrl").
-include("../include/findf_types.hrl").
-include("./findf_names.hrl").
start() -> findf_server:start().
start(InitState) -> findf_server:start(InitState).
stop() -> gen_server:cast(?SERVER, stop).
find_file(Name) ->
case gen_server:call(?SERVER, {find_file, Name}) of
{ok, Value} -> Value;
{error, Reason} -> throw(Reason)
end.
open_file(Name) ->
case gen_server:call(?SERVER, {open_file, Name}) of
{ok, Value} -> Value;
{error, Reason} -> throw(Reason)
end.
read_file(Name) ->
case gen_server:call(?SERVER, {read_file, Name}) of
{ok, Value} -> Value;
{error, Reason} -> throw(Reason)
end.
get_dirs() -> gen_server:call(?SERVER, get_dirs).
set_dirs(Dirs) -> gen_server:call(?SERVER, {set_dirs, Dirs}).
add_to_dirs(Dir) -> gen_server:call(?SERVER, {add_to_dirs, Dir}).
remove_from_dirs(Dir) -> gen_server:call(?SERVER, {remove_from_dirs, Dir}).
get_exts() -> gen_server:call(?SERVER, get_exts).
set_exts(Exts) -> gen_server:call(?SERVER, {set_exts, Exts}).
add_to_exts(Ext) -> gen_server:call(?SERVER, {add_to_exts, Ext}).
remove_from_exts(Ext) -> gen_server:call(?SERVER, {remove_from_exts, Ext}).