Unsolved gSoap and SOAP on Qt
-
Hi,
we are comparing different solutions for SOAP on Qt.
Right now there are gSoap, KDSoap and QtSoap.https://sourceforge.net/p/gsoap2
https://github.com/KDAB/KDSoap
https://github.com/commontk/QtSOAPQtSoap does not seem to be maintained anymore, not ported to Qt5 and not supporting latest SOAP standards > 1.2.
KDSoap is nice, currently tested here, but not as complete as gSoap. For instance gSoap also supports parsing plain XSD files.
However KDSoap has lot of advantages when remaining in the Qt world: It supports asynchronous non-blocking communication via signals and slots. The server site is multi-threading and completely based on QNetworkAccessManager and QXmlStreamReader/Writer. All data types and containers are Qt based and don't need further conversion.Both KDSoap and gSoap are still maintained, however gSoap has more activity. gSoap supports many styles of generation from plain C, to STL, proxy classes or member classes, so lot of flexibility that are not necessarily required. But the biggest advantage is it can use XSD directly to create data structures.
Afaik gSoap being based on plain C/C++ will always act synchronously and blocking the main loop. What effort would it be to decouple the gSoap code into a separate thead? Would threading be the right approach to be asynchronous/non-blocking? Some wrappers to get signals and slots like KDSoap wouldn't be that much effort.
Best regards,
Massimo