Sha256: 23ec971fe753c276f4c4e684f2ace74fca69e19c0e6f3cadc42f1555116a28ff

Contents?: true

Size: 418 Bytes

Versions: 9

Compression:

Stored size: 418 Bytes

Contents

% Handles generic events
-module (pm_event_handler).
-export ([make/0, add_handler/1, event/1]).

% Make a new event handler
make() ->
	register(?MODULE, spawn(fun() -> handle_events(fun no_op/1) end )).

add_handler(Fun) ->
	whereis(?MODULE) ! {add, Fun}.

event(X) -> whereis(?MODULE) ! {event, X}.

handle_events(Fun) ->
	receive
		{event, Any} ->
			(catch Fun(Any)),
			handle_events(Fun)
	end.

no_op(_) -> void.

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
auser-poolparty-0.2.16 lib/erlang/messenger/src/pm_event_handler.erl
auser-poolparty-0.2.20 lib/erlang/messenger/src/pm_event_handler.erl
auser-poolparty-0.2.21 lib/erlang/messenger/src/pm_event_handler.erl
auser-poolparty-0.2.22 lib/erlang/messenger/src/pm_event_handler.erl
auser-poolparty-0.2.23 lib/erlang/messenger/src/pm_event_handler.erl
auser-poolparty-0.2.24 lib/erlang/messenger/src/pm_event_handler.erl
auser-poolparty-0.2.25 lib/erlang/messenger/src/pm_event_handler.erl
auser-poolparty-0.2.26 lib/erlang/messenger/src/pm_event_handler.erl
poolparty-0.2.18 lib/erlang/messenger/src/pm_event_handler.erl