Object lifecycle management: terminate()
The example of a use of Cameo in a real project nomad-client-cpp shows that the lifecycle of objects can be improved.
The Python API binding should require this too. The objects associated to the context of server, e.g subscriber must be destroyed before server. That is realised by forcing This::terminate() because the shared pointer of subscriber is attached to the internal stop handler.
Is it possible to simplify and avoid this call? A solution is to call terminate() on all objects.