![]() |
Home | Libraries | People | FAQ | More |
The design of Boost.Application is very modular and extensible. The components are very independents (loosely coupled). The 'aspects' concept allow user to customize, and extend library functionality in easy way. The key components are designed in independent way, and are tied at runtime (launch).
The diagram below shows the components of Boost.Application.
The first component is the 'User Defined Application Functor Class'. This component is designed by the user, and the user must define the 'application operator' that will hold user application logic.
The next components is the 'Application Mode', this component will create the needed structure to run the 'User Defined Application Functor Class' using desired mode, that can be a 'server (Service/Daemon)' or 'common' application type. The user can design a new 'application mode' if he want.
The third component is responsible for receiving 'signals' from the operating system and run the 'callback' defined by the User. The User can customize this manager if necessary.
The next components is the 'Application Context'. This Component hold the 'Aspect Pool' of application. User can customize an 'Aspect' provided by library, or/and can create new 'Aspects' to your own need.
The last components is the 'launch'. The launch tie all components and execute the 'User Application'.
On 'A' we have the 'service setup' component. This component is Windows specific, and has the code necessary to install and uninstall a Windows Service on Client machine. This component is not part of lib, and are provided on 'example/setup' folder.