aboutsummaryrefslogtreecommitdiffstats
path: root/erlang.mk
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2014-12-22 16:24:17 +0200
committerLoïc Hoguin <[email protected]>2014-12-22 16:25:15 +0200
commit68c888981b1b81e922de86813effce14b0f06082 (patch)
treef8c21b55a90ee3462b62bd859a95d7f93cb4fe6c /erlang.mk
parent708812c67f4625d7f91c7ccd9388ecab61a8359d (diff)
downloaderlang.mk-68c888981b1b81e922de86813effce14b0f06082.tar.gz
erlang.mk-68c888981b1b81e922de86813effce14b0f06082.tar.bz2
erlang.mk-68c888981b1b81e922de86813effce14b0f06082.zip
Improve the gen_fsm template
* Rename and add the default state functions `state_name/2,3` * Rename the variable `State` into `StateData` as per documentation
Diffstat (limited to 'erlang.mk')
-rw-r--r--erlang.mk50
1 files changed, 50 insertions, 0 deletions
diff --git a/erlang.mk b/erlang.mk
index b9be16a..7816648 100644
--- a/erlang.mk
+++ b/erlang.mk
@@ -416,6 +416,56 @@ tpl_gen_server = "-module($(n))." \
"" \
"code_change(_OldVsn, State, _Extra) ->" \
" {ok, State}."
+tpl_gen_fsm = "-module($(n))." \
+ "-behaviour(gen_fsm)." \
+ "" \
+ "%% API." \
+ "-export([start_link/0])." \
+ "" \
+ "%% gen_fsm." \
+ "-export([init/1])." \
+ "-export([state_name/2])." \
+ "-export([handle_event/3])." \
+ "-export([state_name/3])." \
+ "-export([handle_sync_event/4])." \
+ "-export([handle_info/3])." \
+ "-export([terminate/3])." \
+ "-export([code_change/4])." \
+ "" \
+ "-record(state, {" \
+ "})." \
+ "" \
+ "%% API." \
+ "" \
+ "-spec start_link() -> {ok, pid()}." \
+ "start_link() ->" \
+ " gen_fsm:start_link(?MODULE, [], [])." \
+ "" \
+ "%% gen_fsm." \
+ "" \
+ "init([]) ->" \
+ " {ok, state_name, \#state{}}." \
+ "" \
+ "state_name(_Event, StateData) ->" \
+ " {next_state, state_name, StateData}." \
+ "" \
+ "handle_event(_Event, StateName, StateData) ->" \
+ " {next_state, StateName, StateData}." \
+ "" \
+ "state_name(_Event, _From, StateData) ->" \
+ " {reply, ignored, state_name, StateData}." \
+ "" \
+ "handle_sync_event(_Event, _From, StateName, StateData) ->" \
+ " {reply, ignored, StateName, StateData}." \
+ "" \
+ "handle_info(_Info, StateName, StateData) ->" \
+ " {next_state, StateName, StateData}." \
+ "" \
+ "terminate(_Reason, _StateName, _StateData) ->" \
+ " ok." \
+ "" \
+ "code_change(_OldVsn, StateName, StateData, _Extra) ->" \
+ " {ok, StateName, StateData}."
tpl_cowboy_http = "-module($(n))." \
"-behaviour(cowboy_http_handler)." \
"" \