TreeFrog (C Web Framework)開發之原始碼分析

TreeFrog (C   Web Framework)開發之原始碼分析

    為了弄明白 TreeFrog 的邏輯,我分析了它的原始碼。將程式開始至開發人員自己的工程如何被呼叫的路線理清楚了。

    工程 tfmanager 是整個框架的起點,它生成 treefrog 守護程序,還記得嗎,”treefrog -e dev” 這個命令,我們用來啟動網站的?

    工程 tfserver 是真正的站點入口,負責處理 http 請求,它生成 tadpole 。

    tfmanager 會監控 tfserver 的執行,如果 tfserver 莫名崩潰,會重啟它。

    tfserver 的多工處理模型有三種:多程序、多執行緒、混合型。這裡我們只分析多執行緒模型。要使用哪種模型可以通過配置檔案指定,在 Windows 下,如果不指定,則預設使用多執行緒模型。多執行緒模型為每個 http 連線生成一個執行緒進行處理。

    開發者使用 treefrog 建立的工程,生成的是動態庫,會被 tfserver 載入,tfserver 將 URL 處理為 controller 、 action 、 argument 三部分,參考

URL Routing
這個文件。tfserver 分析 URL 後,提取 controller 名字,找到開發者的 controller ,用 action 和 arguments 為引數進行呼叫。而 model 和 view 則是由 controller 進行關聯的。就這樣,一切發生了。

    下面是我分析原始碼後繪製的函式呼叫圖,供參考:

    根據上面的圖,理解 treefrog 原始碼就很容易了。

    接下來有時間的話,會繼續我們的 fileserver 示例。再有時間,會提供一個使用 model 和 view 的示例。