The CppCMS framework consists of following parts: |
|
## Long Living Classes |
|
- Central `service` --- the major class that holds |
the main application loop and manages all resources. |
|
All global resources are accessed via this service. |
|
It also hold the main event driven execution loop |
based on `boost::asio::io_service`. |
|
- `applications_pool` --- it the class that holds |
a pool of user created applications and dispatches |
them according to requested url. It is the major |
connector between URL and application. |
|
Each time the page is requested an application fetched |
from it and then returned back for recycling. |
|
- `thread_pool` --- is the thread pool for long running |
and time consuming jobs that can't be executed withing |
asynchronous event loop. |
|
Generally, when new request arrives it is executed |
by application in the `thread_pool`. |
|
- `locale::pool` --- is the gateway to i18n and l10n |
world. It holds the set of `std::locale` for each |
supported locale required by developer. It also |
adds custom facets like `gettext` in order to extend |
localization capabilities behind the strict set of |
facets provided by standard C++. |
|
- The configuration of all CppCMS components is done |
via single JSON object that is loaded by `service` |
and accessible via `json::object const &settings()` |
member function of `service` class. |
|