pvfs中src/client/sysin/sys-get-eattr.sm与对应的src/client/sysin/sys-get-eattr.c
发布日期:2021-07-13 02:57:14
浏览次数:2
分类:技术文章
本文共 2360 字,大约阅读时间需要 7 分钟。
.sm文件的装态机描述部分:
machine pvfs2_client_get_eattr_sm { state setup_msgpair { run get_eattr_setup_msgpair; success => xfer_msgpair; default => cleanup; } state xfer_msgpair { jump pvfs2_msgpairarray_sm; default => cleanup; } state cleanup { run get_eattr_cleanup; default => terminate; } }
其中有三个状态set_msgpair xfer_msgpair cleanup
对应生成的.c文件的部分为:
struct PINT_state_machine_s pvfs2_client_get_eattr_sm = { .name = "pvfs2_client_get_eattr_sm", //对应状态机的名字 .first_state = &ST_setup_msgpair //对应状态机的第一个状态 }; static struct PINT_state_s ST_setup_msgpair = { //第一个状态 .state_name = "setup_msgpair" , //状态名称 .parent_machine = &pvfs2_client_get_eattr_sm , //父状态机 .flag = SM_RUN , //标志对应.sm文件中第一个状态的run动作 .action.func = get_eattr_setup_msgpair , //状态动作函数 .pjtbl = NULL , .trtbl = ST_setup_msgpair_trtbl //状态转移表 }; static struct PINT_tran_tbl_s ST_setup_msgpair_trtbl[] = { //状态转移表 { .return_value = 0 , //success(0),进入下一个状态xfer_msgpair .next_state = &ST_xfer_msgpair }, { .return_value = -1 , //default(-1),进入cleanup .next_state = &ST_cleanup } }; static struct PINT_state_s ST_xfer_msgpair = { //与第一个状态类似 .state_name = "xfer_msgpair" , .parent_machine = &pvfs2_client_get_eattr_sm , .flag = SM_JUMP , //标志对应状态的动作为jump .action.nested = &pvfs2_msgpairarray_sm , //.nested表明跳到一个其他的状态机文件 .pjtbl = NULL , .trtbl = ST_xfer_msgpair_trtbl }; static struct PINT_tran_tbl_s ST_xfer_msgpair_trtbl[] = { { .return_value = -1 , .next_state = &ST_cleanup } };static struct PINT_state_s ST_cleanup = { .state_name = "cleanup" , .parent_machine = &pvfs2_client_get_eattr_sm , .flag = SM_RUN , .action.func = get_eattr_cleanup , .pjtbl = NULL , .trtbl = ST_cleanup_trtbl }; static struct PINT_tran_tbl_s ST_cleanup_trtbl[] = { //终止 { .return_value = -1 , .flag = SM_TERM } };
转载地址:https://blog.csdn.net/buaa_shang/article/details/8162191 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月19日 12时07分29秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Spring AOP 原理
2019-04-27
mysql 分库分表分区 动态扩容 总结
2019-04-27
分布式事务 四种方案
2019-04-27
redis和spring整合
2019-04-27
iis6 和iis7s上整个网站重定向
2019-04-27
iis7 url重写和重定向
2019-04-27
navicat工具来将SQL Server数据迁移到MySQL
2019-04-27
微信公众号从头开发(接入与消息)
2019-04-27
端口占用 杀死进程
2019-04-27
XStream xml与javabean之间的互转
2019-04-27
Android应用构建:10:使用sdkmanager管理sdk
2019-04-27
Kubernetes基础:MacOS上设定Dashboard
2019-04-27
#力扣 MySQL:183. 从不订购的客户 @FDDLC
2019-04-27
#力扣 MySQL196. 删除重复的电子邮箱 @FDDLC
2019-04-27
Seekbar 属性 记录
2019-04-27
textview设置独特字颜色和背景颜色
2019-04-27
背景+带边框(圆角)的textview怎么设置
2019-04-27
第二技能
2019-04-27
算法的设计
2019-04-27
LiveGBS支持万级以上设备GB28181设备|平台接入互联网无插件直播
2021-06-30