[PATCH] KIO::SlaveBase and the event loop
truthandprogress at googlemail.com
Sun Jul 27 20:13:30 BST 2008
2008/7/22, Thiago Macieira <thiago at kde.org>:
> On Tuesday 22 July 2008 12:12:05 Roland Harnau wrote:
>> 2008/7/21, Thiago Macieira <thiago at kde.org>:
>> > I might point out that there's another HTTP implementation already
>> > loaded in KDE applications, which is the one in QtNetwork (no, not QHttp). If
>> > there's interest, we can make the class public.
> Yes. That's the one.
> It's the backend for QNetworkAccessManager, which is what QtWebKit uses.
> It's a full HTTP/1.1 implementation.
I have eventually looked at it and I like the way it handles HTTP,
especially the maximal two persistent connections per host as
recommended by the HTTP/1.1 specification and the fact that almost
everything is done in a non-blocking event-driven fashion. Otherwise
it would take away some flexibility from KDE, e.g. QSslSocket is
hard-coded, so DNS caching (perhaps not so important if there are only
two connections per host) and SSL session support are not possible
anymore just as pipelining. To my surprise the QtNetwork module even
contains a file backend, so the whole infrastructure around
QNetworkAccessManager pretty much looks like a in-process version of
The KHTML part uses KIO mainly with KIO::get and KIO::put and
therefore relies on KIO::TransferJob. I currently think about
replacing it with a direct subclass of KIO::Job which has essentially
the same interface as KIO::TransferJob but uses internally the
QtNetwork module instead of slaves to see if it really improves page
More information about the kde-core-devel