next up previous contents
Next: Database layout Up: Developer Manual Previous: example plug-ins   Contents

Reusing Modules

Besides the fine-grained plug-in architecture, the application itself has also been subdivised into larger modules. All user interface code can be found in the executable, while the database and networking code has been placed in separate libraries. These are called datalibrary.dll and netlibrary.dll .

Modularizing the entire application allows for relatively easy replacement of the interface, the networking approach or the database back-end. It also helps in keeping the interdependency of code relatively small. The data- and netlibrary are called by the user-interface through special hooks to start and stop their specific routines, such as the webserver and the indexing engine. Furthermore, the database library contains a class that is used by the webserver to query the database.

Which functions have to be exported can be seen in the .def files accompanying the module sourcecode. All interfacing is done through standard C++ function calls, so portability should not be to great an issue.