OxOOL Module Development HOWTO
This manual will simply explain the file structures in a standard OxOOL module repository and how to develop an OxOOL module.
Default OxOOL Module File Structure
When you use oxool-module-maker to generate a template module repository, by default it will use the module template defined in the package oxool-dev. The important file and folder description in the template is described below:
-
ModuleConfiguration.md: Description of module configuration. -
module.xml.in: Module XML file template, it will be used to generate module XML file when executingconfigure. If you need to change some configurations after generating a module, you should follow the instructions inModuleConfiguration.mdto edit this file and re-runautogen.shandconfigure. -
module.spec.in: It is used to generate RPM spec file. -
debian/*: It is used to generate DEB file. -
admin/*: If this module has a backend administration page you should put it in this folder. The name shown in the admin page is defined in the<adminItem>tag inmodule.xml.in, or assign--adminItemwhen runningoxool-module-maker. See README.md in the generated git repository for reference. -
src/*: Module C++ source files. It will be compiled generated .so file for OxOOL to load. -
html/*: Module HTML frontend files. The default page isindex.html. -
test.sh: When developing and testing a module, this file is used to pass the module XML file to OxOOL to load. See "OxOOL Module Compiling Manual" for detail.
C++ Class Methods in an OxOOL module
In the module repo generated by oxool-module-maker, by default there is a Module.cpp under src/ folder. In this Module.cpp there is the base class of this module, named by the module name. Besides constructors and destructors, there are some methods as well:
-
getVersion(): Get version number. -
initialize(): Initialize. -
handleRequest(): Handle requests from client (frontend). You should implement here to handle the requests from the frontend web client. -
handleAdminRequest(): Handle requests from admin pages. You should implement here to handle the requests from admin pages. -
handleAdminMessage(): Handle websocket messages from backend admin pages.
No comments to display
No comments to display