快速生成樹之通用狀態機

2021-05-22 01:47:13 字數 1082 閱讀 5630

1 原始碼

rstplib.1.1.02/statmch.c,statmch.h

2 功能

提供了快速生成樹中所有狀態機的乙個抽象,類似於物件導向程式設計中的基類。

3 **簡析

3.1 資料結構

/* 通用狀態機 */

typedef struct state_mach_t owner;

} state_mach_t;

3.2 核心巨集

/* 將某具體狀態機(由what填入狀態機名稱,加##不展開what,參見《巨集中"#"和"##"的用法》)新增到this下面附帶的狀態機鍊錶中,其中this視此巨集應用場合不同而定,可能指向埠或網橋*/

#define stp_state_mach_in_list(what)                         /

3.3 實現

/* 建立狀態機 */

state_mach_t * stp_state_mach_create (void (*concreteenterstate) (state_mach_t*),

bool (*concretecheckcondition) (state_mach_t*),

char *(*concretegetstatname) (int),

void *owner, char *name)

/* 刪除狀態機 */

void stp_state_mach_delete (state_mach_t *this)

/* 檢查倒換條件 */

bool stp_check_condition (state_mach_t* this)

return bret; }

/* 狀態機更新,在生成樹更新函式中被呼叫 */

bool stp_change_state (state_mach_t* this)

return number_of_loops; }

/* 狀態機狀態倒換 */

bool stp_hop_2_state (state_mach_t* this, unsigned int new_state)

4 網橋、埠、狀態機關係圖

快速生成樹之埠狀態轉移狀態機

1 原始碼 rstplib.1.1.02 sttrans.c,sttrans.h。2 簡析 802.1w標準對應rstp,802.1d標準對應stp,針對802.1w和802.1d標準,交換機晶元硬體一般提供不同形式的api 1 802.1w 對於某個埠定義 學習 兩種狀態的使能和禁止,對於 丟棄 ...

快速生成樹之拓撲變化狀態機

1 原始碼 rstplib.1.1.02 topoch.c,topoch.h。2 拓撲變化規則 a 如果乙個網橋檢測到拓撲變化後,它從所有非邊界活動埠傳播拓撲變化訊息 b 如果乙個活動埠收到拓撲變化訊息後,它從所有其它非邊界活動埠傳播拓撲變化消 息。另外如果它是指定埠,它還從該指定埠發回乙個拓撲變化...

Mina狀態機快速上手

mina狀態機是apache對狀態機模式的一種非常巧妙的實現,它本身自帶的錄音機的例子 和日常用的方式不太一樣,也不太好理解。這裡對mina狀態機的使用方式做個簡要的說明,希望能對大家有點幫助。首先要明白乙個概念 狀態機是乙個機器,它是可以生產加工一批東西的,只為了加工乙個物品而使用狀態機是不合適的...