rstplib原始碼分析 快速生成樹之通用狀態機

2021-06-22 03:57:15 字數 1066 閱讀 9381

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 網橋、埠、狀態機關係圖

spring原始碼分析 spring原始碼分析

1.spring 執行原理 spring 啟動時讀取應用程式提供的 bean 配置資訊,並在 spring 容器中生成乙份相應的 bean 配置登錄檔,然後根據這張登錄檔例項化 bean,裝配好 bean 之間的依賴關係,為上 層應用提供準備就緒的執行環境。二 spring 原始碼分析 1.1spr...

思科VPP原始碼分析(dpo機制原始碼分析)

vpp的dpo機制跟路由緊密結合在一起。路由表查詢 ip4 lookup 的最後結果是乙個load balance t結構。該結構可以看做是乙個hash表,裡面包含了很多dpo,指向為下一步處理動作。每個dpo都是新增路由時的乙個path的結果。dpo標準型別有 dpo drop,dpo ip nu...

redux原始碼分析(三) 原始碼部分

下面是每個部分的一些解讀 createstore apicreatestore reducer,initialstate enhancer 曾經非常好奇這個函式的第二個引數到底是initialstate還是enhancer,因為見過兩種寫法都有的,以為是版本問題。看了原始碼才發現,都可以的。如果你不...