-
Notifications
You must be signed in to change notification settings - Fork 10
okebkal edited this page Apr 1, 2016
·
16 revisions
fsm
Generic fsm behaviour
time() = {s, integer() > 0} | {ms, integer() > 0} | {us, integer() > 0}
trans() = [state_trans()]
state_trans() = {State :: atom(), [trans_arrow()]}
trans_arrow() =
{Event :: atom(), State :: atom()} |
{Event :: atom(), Pop :: atom(), Push :: atom(), State :: atom()}
at() anything that can be accepted by role_at:from_term
Types
SM = sm()
Event = atom()
Result = sm()
Types
SM = sm()
Result = sm()
Types
SM = sm()
EventList = [atom()]
Result = sm()
Types
SM = sm()
Time = time()
Event = atom()
Result = sm()
Types
SM = sm()
Event = atom()
Result = true | false
Types
SM = sm()
Event = atom()
Result = sm()
Types
MiddleMan = mm()
SM = sm()
Term = any()
Result = sm()
Types
SM = sm()
AT = at()
Result = sm()
Types
SM = sm()
Target = atom()
Term = any()
Result = sm()
Types
SM = sm()
Target = atom()
Term = any()
Result = sm()
Types
SM = sm()
MiddleMan = mm()
EOpts = any()
Term = any()
Condition = fun((MiddleMan, Role :: atom(), EOpts) -> true | false)
Result = sm()
Types
SM = sm()
Target = atom()
Result = true | false
The following functions must be exported from a fsm callback module.
Types
SM = sm()
Result = {ok,pid()} | ignore | {error,any()}
Types
SM = sm()
Result = sm()
Types
SM = sm()
Types
SM = sm()
MM = mm()
Term = any()
Result = sm()
Types
Result = trans()
Types
Result = [atom()]
Types
Result = atom()