首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在boost::statechart中记录状态更改

在boost::statechart中记录状态更改
EN

Stack Overflow用户
提问于 2011-05-17 03:29:47
回答 2查看 346关注 0票数 1

对于单元测试,我试图在启动一个状态机事件之后记录所有的状态事务。

例如,如果我将A post_event到async_state_machine的fifo_scheduler,状态机将经历状态B,C,然后返回到D。由于无法记录所有的事件状态,我只能在执行单元测试时检查它是否在完成后进入状态D :-(

我唯一能想到的就是修改我创建的(从simple_state派生的)所有状态的所有react方法或构造器,以便它们进行记录。当我真的想在async_state_machine调用一个状态的react()方法之前挂接到它时,这看起来有点老土……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-17 12:03:06

当我真的想在async_state_machine调用一个状态的react()方法之前挂接到它时,这看起来有点老土……

你为什么不呢?创建一个扩展async_state_machine的新类,并在其中添加所需的钩子。如果访问是一个问题(很可能会是),那么在包含statechart之前进行一次壮观的#define private public (或protected )。

我做了一些类似的事情,将局部变量添加到一个状态的历史中,并添加了一种新的状态量,这样我就有了真正的完整历史。

票数 0
EN

Stack Overflow用户

发布于 2011-05-18 20:02:32

添加了一个不同的hack。每个状态都是在boost状态机使用它之前创建的(然后在它转到下一个低效的state...seems之后销毁),所以每个状态都是从另一个类派生出来的,该类的构造函数中有一个回调。看起来hackish...wish boost++有一种更干净的方式来做这件事:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6022343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档