0
我有一个gen_fsm实现,它具有非常多的状态和很多代码(超过2000行代码)。任何想法如何使gen_fsm模块化,也许像插件系统?但我希望fsm能够在位于不同插件的状态之间跳转。模块化gen_fsm行为实现
我有一个gen_fsm实现,它具有非常多的状态和很多代码(超过2000行代码)。任何想法如何使gen_fsm模块化,也许像插件系统?但我希望fsm能够在位于不同插件的状态之间跳转。模块化gen_fsm行为实现
那么你可以创建erlang模块。我在看this gen_fsm skeleton,你可以将任何功能换成它自己的模块。
例如假设你有一个事件处理程序像
handle_event(wakeup, StateName, State) ->
%% rest of the body
你可以创建一个新的模块和移动处理事件有
-module(wakeup_event).
-export(wakeup/3).
wakeup(_wakeup,Statename, State)-> %%do something here
{nextstate, Statename,State}.
的定义,并从handle_event调用它像这样
handle_event(wakeup,Statename,State)->
wakeup_event:wakeup(wakeup,Statename,State);