diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2011-08-16 12:02:29 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2011-08-16 12:02:29 +0100 |
commit | 7de214e7104ec2a094b8b927e789dab5027165cb (patch) | |
tree | adfb0356655c65b58a4275137d8ed37095956dae /src/rabbit_tests_event_receiver.erl | |
parent | ecc6796de925554b174020fc10d3df8917a29226 (diff) | |
download | rabbitmq-server-7de214e7104ec2a094b8b927e789dab5027165cb.tar.gz |
Don't drain events, instead get rabbit_tests_event_receiver to only forward on events we care about.
Diffstat (limited to 'src/rabbit_tests_event_receiver.erl')
-rw-r--r-- | src/rabbit_tests_event_receiver.erl | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/rabbit_tests_event_receiver.erl b/src/rabbit_tests_event_receiver.erl index dba03fdd..abcbe0b6 100644 --- a/src/rabbit_tests_event_receiver.erl +++ b/src/rabbit_tests_event_receiver.erl @@ -16,38 +16,43 @@ -module(rabbit_tests_event_receiver). --export([start/2, stop/0]). +-export([start/3, stop/0]). -export([init/1, handle_call/2, handle_event/2, handle_info/2, terminate/2, code_change/3]). -start(Pid, Nodes) -> +-include("rabbit.hrl"). + +start(Pid, Nodes, Types) -> Oks = [ok || _ <- Nodes], {Oks, _} = rpc:multicall(Nodes, gen_event, add_handler, - [rabbit_event, ?MODULE, [Pid]]). + [rabbit_event, ?MODULE, [Pid, Types]]). stop() -> gen_event:delete_handler(rabbit_event, ?MODULE, []). %%---------------------------------------------------------------------------- -init([Pid]) -> - {ok, Pid}. +init([Pid, Types]) -> + {ok, {Pid, Types}}. -handle_call(_Request, Pid) -> - {ok, not_understood, Pid}. +handle_call(_Request, State) -> + {ok, not_understood, State}. -handle_event(Event, Pid) -> - Pid ! Event, - {ok, Pid}. +handle_event(Event = #event{type = Type}, State = {Pid, Types}) -> + case lists:member(Type, Types) of + true -> Pid ! Event; + false -> ok + end, + {ok, State}. -handle_info(_Info, Pid) -> - {ok, Pid}. +handle_info(_Info, State) -> + {ok, State}. -terminate(_Arg, _Pid) -> +terminate(_Arg, _State) -> ok. -code_change(_OldVsn, Pid, _Extra) -> - {ok, Pid}. +code_change(_OldVsn, State, _Extra) -> + {ok, State}. %%---------------------------------------------------------------------------- |