我嘗試在erlang中編寫簡單的gen_event applcation。Erlang gen_event不工作
我的代碼:
-module(test).
-behavior(gen_event).
-export([notify/0]).
%% API
-export([start_link/0, add_handler/0, stop/0]).
%% gen_event callbacks
-export([init/1, handle_event/2, handle_call/2,
handle_info/2, terminate/2, code_change/3]).
-define(SERVER, ?MODULE).
start_link() ->
gen_event:start_link({local, ?SERVER}).
add_handler() ->
gen_event:add_handler(?SERVER, ?MODULE, []).
stop() ->
gen_event:stop(?MODULE).
init([]) ->
%add_handler(),
{ok, null}.
handle_event(_Event, State) ->
{ok, State};
handle_event({test}, State) ->
io:format("Test"),
{ok, State}.
handle_call(_Request, State) ->
Reply = ok,
{ok, Reply, State}.
handle_info(_Info, State) ->
{ok, State}.
terminate(_Reason, _State) ->
ok.
code_change(_OldVsn, State, _Extra) ->
{ok, State}.
notify() ->
gen_event:notify(?SERVER, {test}).
當我嘗試通知我想到的是功能handle_event({}測試,狀態)執行,但沒有發生。爲什麼?怎麼了?
我在哪裏可以看到gen_event的簡單示例?
謝謝。
如果您只是編譯該源代碼,編譯器會非常尖銳地指出錯誤: 「./test.erl:30:警告:此子句無法匹配,因爲第28行的前一個子句總是匹配」 – 2011-01-27 22:14:41