我的问题更像是一个架构问题。我有多个相同类型的状态机。说
controller_type1_sm controller1;
controller_type2_sm controller2;
std::array<worker1_sm,10> workers1;
std::array<worker2_sm,10> workers2;
现在,当一个控制器发送消息时,我是否应该使用一个调度程序将名称或 ID 调度到一个队列,该队列由调用process_event()
指定 msm 的线程工作?
当事件从一个公共基础派生时,它们可以保存在一个通用队列中,但process_event()
需要知道它是什么类型的事件。访客班来派遣他们?有更好的解决方案吗?
当我将事件限制为数字 ID 时,我可以消除很多问题,但另一方面,MSM 需要类型而不是 ID。
调用 , 的线程process_event()
需要知道它们工作的状态机的类型。模板显然...
编辑:目标是解耦实现。