快速生成树之通用状态机

本文介绍了快速生成树中通用状态机的设计,包括数据结构、核心宏及其实现。状态机用于管理网桥和端口的状态转换,通过创建、检查条件和更新状态等功能,实现状态的动态管理。
摘要由CSDN通过智能技术生成

1 源码

   rstplib.1.1.02/statmch.c,statmch.h

2 功能

   提供了快速生成树中所有状态机的一个抽象,类似于面向对象编程中的基类。

3 代码简析

3.1 数据结构

/* 通用状态机 */

typedef struct state_mach_t {

  struct state_mach_t* next; // 下一状态机

  Bool          changeState; // 状态变化标志

  unsigned int  State; // 当前状态

  void          (* concreteEnterState) (struct state_mach_t * ); // 执行进入某状态后的固定动作

  Bool          (* concreteCheckCondition) (struct state_mach_t * ); // 检查状态倒换条件并完成状态倒换

  union {

    struct stpm_t* stpm; // 指向本状态机所属网桥

    struct port_t* port; // 指向本状态机所属端口

    void  * owner; // 指向本状态机的创建者,可能是某端口,也可能是某网桥

  } owner;

} STATE_MACH_T;

3.2 核心宏

/* 将某具体状态机(由WHAT填入状态机名称,加##不展开WHAT,参见《宏中"#"和"##"的用法》)添加到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值