1-module({{fsmid}}). 2-behaviour(gen_fsm). 3-define(SERVER, ?MODULE). 4 5%% ------------------------------------------------------------------ 6%% API Function Exports 7%% ------------------------------------------------------------------ 8 9-export([start_link/0]). 10 11%% ------------------------------------------------------------------ 12%% gen_fsm Function Exports 13%% ------------------------------------------------------------------ 14 15-export([init/1, state_name/2, state_name/3, handle_event/3, 16 handle_sync_event/4, handle_info/3, terminate/3, 17 code_change/4]). 18 19%% ------------------------------------------------------------------ 20%% API Function Definitions 21%% ------------------------------------------------------------------ 22 23start_link() -> 24 gen_fsm:start_link({local, ?SERVER}, ?MODULE, [], []). 25 26%% ------------------------------------------------------------------ 27%% gen_fsm Function Definitions 28%% ------------------------------------------------------------------ 29 30init(_Args) -> 31 {ok, initial_state_name, initial_state}. 32 33state_name(_Event, State) -> 34 {next_state, state_name, State}. 35 36state_name(_Event, _From, State) -> 37 {reply, ok, state_name, State}. 38 39handle_event(_Event, StateName, State) -> 40 {next_state, StateName, State}. 41 42handle_sync_event(_Event, _From, StateName, State) -> 43 {reply, ok, StateName, State}. 44 45handle_info(_Info, StateName, State) -> 46 {next_state, StateName, State}. 47 48terminate(_Reason, _StateName, _State) -> 49 ok. 50 51code_change(_OldVsn, StateName, State, _Extra) -> 52 {ok, StateName, State}. 53 54%% ------------------------------------------------------------------ 55%% Internal Function Definitions 56%% ------------------------------------------------------------------ 57 58