GSoap and Qt
Hi, that topic was too old so I start a new one.
So far I successfully tested KDSOAP with Qt. Compared to gSoap it has the advantage of having native Qt containers and additional asynchronous calls using signals/slots.
But now I found that KDSOAP is not complete and has no support for WS-Security. gSoap should support that, so I think about switching some existing code to from KDSOAP to gSoap.
gSoap can at least generate STL containers so I would still need some type conversion. But what about the asynchronous calls? What way would be recommended to create a generic wrapper around gSoap to have signals/slots instead of blocking function calls?
I haven't used gsoap in a long time, but from what I remember it doesn't have 2 way asynchronous calling. So to emulate a signal/slot type mechanic you are stuck with blocking calls and threads.
Of course while it's in a blocking call if you wanted to stop the threads you wouldn't be able to and would have to kill them.
Disclaimer: I don't remember fully though so this is just a hint as I may be completely wrong. :)
Using threads was my guess too. Of course the thread using a blocking gSoap call is still blocking inside the thread.
As KDSOAP is fully Qt based I guess it's using QNetworkRequest internally, but how is that asynchronous? Does Qt also use Threads internally to keep track of a connection without blocking?
Is there any design pattern how to create generic threads with signals around some blocking framework? This shouldn't only apply to gSoap but also other Libraries.
It usually depends on how the library itself works. You can queue "commands" you want the library to execute and your thread can execute them one after the other, or you can use QtConcurrent which is higher level thread management.