switchable communication backend
This MR enables compiling with both Thallium and Asio backends and allows to switch between them upon runtime through the PARAVIEW_COMMUNICATION_BACKEND= {"THALLIUM","ASIO"}
environmental.
The code is reorganized and now the sources of both backends live under Services/Backend
, the ParaView::ServicesAsio
and ParaView::ServicesThallium
modules are now gone. All examples and executables link to the new module ParaView::ServicesBackend
.
Alongside the support for both backends we now have ci for both backends on linux. To save time we use a single build job that is reused by tw test jobs. To start on a green ci we introduce fixes of the thallium backend mainly related to replacing the use of rxcpp::subjects with cold observables and picking an appropriate coordination.