Skip to content
Browse files

Adicionado um supervisor ao projeto.

  • Loading branch information...
1 parent 353b1c3 commit 3ff5a637b86e28355c3e6c11cff8149d9c547561 @carlosbrando committed Mar 29, 2011
Showing with 66 additions and 7 deletions.
  1. +1 −1 README
  2. +1 −4 chat_client.erl
  3. +3 −2 message_router.erl
  4. +59 −0 message_router_sup.erl
  5. +2 −0 message_store.erl
View
2 README
@@ -1 +1 @@
-c(message_store). c(server_util). c(chat_client). c(message_router).
+c(message_store). c(server_util). c(chat_client). c(message_router). c(message_router_sup).
View
5 chat_client.erl
@@ -18,7 +18,4 @@ handle_messages (Nickname) ->
handle_messages(Nickname);
stop ->
ok
- end.
-
-start_router () ->
- message_router:start_link().
+ end.
View
5 message_router.erl
@@ -43,7 +43,7 @@ unregister_nick (ClientName) ->
gen_server:call({global, ?SERVER}, {unregister_nick, ClientName}).
shutdown () ->
- gen_server:cast(?SERVER, stop).
+ gen_server:cast({global, ?SERVER}, stop).
%%====================================================================
%% gen_server callbacks
@@ -58,7 +58,8 @@ shutdown () ->
%% @end
%%--------------------------------------------------------------------
init([]) ->
- message_store:start_link(),
+ process_flag(trap_exit, true),
+ io:format("~p (~p) starting...~n", [?MODULE, self()]),
{ok, dict:new()}.
%%--------------------------------------------------------------------
View
59 message_router_sup.erl
@@ -0,0 +1,59 @@
+%%%-------------------------------------------------------------------
+%%% File: message_router_sup.erl
+%%% @author Carlos Brando <eduardobrando@gmail.com> [http://www.nomedojogo.com]
+%%% @copyright 2011 Carlos Brando
+%%% @doc
+%%%
+%%% @end
+%%%
+%%% @since 2011-03-29 by Carlos Brando
+%%%-------------------------------------------------------------------
+-module(message_router_sup).
+-author('eduardobrando@gmail.com').
+
+-behaviour(supervisor).
+
+%% API
+-export([start_link/0]).
+
+%% Supervisor callbacks
+-export([init/1]).
+
+-define(SERVER, ?MODULE).
+
+%%====================================================================
+%% API functions
+%%====================================================================
+%%--------------------------------------------------------------------
+%% @spec start_link() -> {ok,Pid} | ignore | {error,Error}
+%% @doc Starts the supervisor
+%% @end
+%%--------------------------------------------------------------------
+start_link() ->
+ supervisor:start_link({local, ?SERVER}, ?MODULE, []).
+
+%%====================================================================
+%% Supervisor callbacks
+%%====================================================================
+%%--------------------------------------------------------------------
+%% @spec init(Args) -> {ok, {SupFlags, [ChildSpec]}} |
+%% ignore |
+%% {error, Reason}
+%% @doc Whenever a supervisor is started using
+%% supervisor:start_link/[2,3], this function is called by the new process
+%% to find out about restart strategy, maximum restart frequency and child
+%% specifications.
+%% @end
+%%--------------------------------------------------------------------
+init([]) ->
+ process_flag(trap_exit, true),
+ io:format("~p (~p) starting...~n", [?MODULE, self()]),
+ MessageRouter = {message_router, {message_router, start_link, []},
+ permanent, 5000, worker, [message_router]},
+ MessageStore = {message_store, {message_store, start_link, []},
+ permanent, 5000, worker, [message_store]},
+ {ok, {{one_for_all, 5, 30}, [MessageRouter, MessageStore]}}.
+
+%%====================================================================
+%% Internal functions
+%%====================================================================
View
2 message_store.erl
@@ -63,6 +63,8 @@ shutdown () ->
%% @end
%%--------------------------------------------------------------------
init([]) ->
+ process_flag(trap_exit, true),
+ io:format("~p (~p) starting...~n", [?MODULE, self()]),
init_store(),
{ok, #state{}}.

0 comments on commit 3ff5a63

Please sign in to comment.
Something went wrong with that request. Please try again.