OxOOL 模組開發手冊
本手冊將簡單介紹 OxOOL 模組結構與開發說明。
OxOOL 預設模組檔案結構
這裡就以使用 oxool-module-maker
並以 oxool-dev
套件中預設之模組範本產生之新模組為例,重要的檔案與目錄重點說明如下:
-
ModuleConfiguration.md
: 模組配置檔說明。 -
module.xml.in
: 模組配置檔,用來在執行configure
時產生模組 XML 檔。如果在oxool-module-maker
所下的參數有誤或需要修改、需要調整 XML 檔中的內容或新增標籤等,則可根據ModuleConfiguration.md
中的說明修改此檔並重新執行autogen.sh
與configure
。 -
module.spec.in
: 用來產生 rpm 軟體包的 spec 檔。 -
debian/*
: 用來產生 deb 軟體包的檔案。 -
admin/*
: 如果模組有後端管理介面,則放在此處。管理介面裡顯示的名稱定義在module.xml.in
中的<adminItem>
標籤,或是在執行oxool-module-maker
時指定的--adminItem
參數。可參考 README.md 中的說明。 -
src/*
: 模組的 C++ 源碼檔,會編譯成 .so 檔並在 OxOOL 執行時載入。 -
html/*
: 模組前端網頁介面。模組可以不必用 C++ 實作,而是直接透過網頁進行。預設的頁面為 index.html。 -
test.sh
: 模組開發期間測試時,只要執行此檔,並將模組的 XML 檔傳給 OxOOL 即可進行測試。可參考 OxOOL模組編譯手冊中的說明。
OxOOL 模組中 C++ 的類別與方法
oxool-module-maker
產生之新模組,預設在 src 下會有 Module.cpp
檔,裡面定義此模組的基礎類別,以模組名稱為類別名稱。裡面除了建構子與解構子之外,定義了幾個方法:
-
getVersion()
: 取得版本號。 -
initialize()
: 初始化模組。 -
handleRequest()
: 處理來自前端 Client 對模組的請求。根據模組需求去實作每個請求。 -
handleAdminRequest()
: 處理來自後端管理介面對模組的請求。根據模組需求去實作每個請求。 -
handleAdminMessage()
: 處理來自後端管理介面對模組傳送的 websocket 訊息。