diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-02-05 20:28:49 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-02-05 20:28:49 +0000 |
commit | 7f0e4e195ef9d5ce6340f7cc66108263d77b0f63 (patch) | |
tree | d6b4b7eef30b948caaf1c8b02a697b4c39403a09 /src/jd2ejd.erl | |
parent | *** empty log message *** (diff) |
*** empty log message ***
SVN Revision: 59
Diffstat (limited to 'src/jd2ejd.erl')
-rw-r--r-- | src/jd2ejd.erl | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/jd2ejd.erl b/src/jd2ejd.erl index 1ec7ce5a..92175e60 100644 --- a/src/jd2ejd.erl +++ b/src/jd2ejd.erl @@ -13,8 +13,8 @@ -behaviour(gen_fsm). %% External exports --export([start/1, - start/2, +-export([start_link/1, + start_link/2, import_file/1, import_dir/1]). @@ -31,7 +31,7 @@ -include("ejabberd.hrl"). -include("namespaces.hrl"). --record(state, {socket, +-record(state, {socket, pid, user = "", server = ?MYNAME, resource = "" }). @@ -47,12 +47,12 @@ %%%---------------------------------------------------------------------- %%% API %%%---------------------------------------------------------------------- -start(File) -> +start_link(File) -> User = filename:rootname(filename:basename(File)), - start(File, User). + start_link(File, User). -start(File, User) -> - gen_fsm:start(?MODULE, [File, User], ?FSMOPTS). +start_link(File, User) -> + gen_fsm:start_link(?MODULE, [File, User, self()], ?FSMOPTS). %%%---------------------------------------------------------------------- %%% Callback functions from gen_fsm @@ -65,11 +65,11 @@ start(File, User) -> %% ignore | %% {stop, StopReason} %%---------------------------------------------------------------------- -init([File, User]) -> +init([File, User, Pid]) -> XMLStreamPid = xml_stream:start(self()), {ok, Text} = file:read_file(File), xml_stream:send_text(XMLStreamPid, Text), - {ok, wait_for_xdb, #state{user = User}}. + {ok, wait_for_xdb, #state{user = User, pid = Pid}}. %%---------------------------------------------------------------------- %% Func: StateName/2 @@ -191,6 +191,7 @@ handle_info(_, StateName, StateData) -> %% Returns: any %%---------------------------------------------------------------------- terminate(Reason, StateName, StateData) -> + StateData#state.pid ! {jd2ejd, exited}, ok. %%%---------------------------------------------------------------------- @@ -216,7 +217,8 @@ process_offline(To, {xmlelement, _, _, Els}) -> import_file(File) -> - start(File). + start_link(File), + receive M -> M end. import_dir(Dir) -> {ok, Files} = file:list_dir(Dir), |