Implement termination of worker threads. To achieve the goal so called
control queue has been introduced which is handled in Worker base class.
Once worker thread receives stop message it tries to kill itself. It is
possible to join a worker thread before deinit know thanks to a
semaphore given before thread termination.
Some improvements to the interface and implementation has been made
including state sanity checks. It is assumed that only service that owns
the worker is allowed to stop it, which allows not to consider code
reentrancy.
Worker destroying procedure has been updated in services that already
own workers.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
* EGD-3087 WIP adding SMS Querry
* EGD-3087 Added query virtual interface on Service top layer
Service shouldn't implement query logic and should be proxying that.
additionally:
- small fixes in includes
- shared service db name same way as apps and event manager
* EGD-3087 Query - want to work on interface not on db
* EGD-3087 Query gluecode works fine. Our query in SMS search calls getBySMSQuery
Changes cut off before any potential orm interface layer
* EGD-3087 WIP Interface in use
* EGD-3087 Query for SMS search works as designed
* EGD-3087 Query results should be on screen
* EGD-3087 BUG workaround - need to deep refresh display to show data
* EGD-3087 Searching for text from input works fine
* EGD-3087 Showing results / or empty results depending on query
* EGD-3087 Pre PR fixups
* EGD-3087 Empty search - getting back to prewious window ignore current
* EGD-3087 PR applied
* EGD-3087 PR - style fixed
* EGD-3087 Review - DB ListView handling moved to separate function
* EGD-3087 Workaround: crash on use after free fix
* EGD-3087 PR stylistic changes
* EGD-3087 PR cleanup applied
* EGD-3087 Added test for Query interface
* EGD-3087 renamed getByQuery to getQuery & finished tests
* EGD-3087 Post rebase fixup
* EGD-3087 PR - moved ListView request part to separate function
* EGD-3087 PR Fixups
* EGD-3087 Post rebase style fix
* EGD-3087 Added variable for DB service stack & const to getter function
Till now there was no clear way to register hanlder for message in
Service, with this approach one can register function/lambda handler
for Message which encurages handling messages in functions rather than
in hudge switch cases.
With aproach like this our Messages resembe something between Command
and State pattern. In state pattern `Message` would be `Event` send,
whereas Service would be `Context`.