New KIO::Connection

Thiago Macieira thiago at kde.org
Sun Jul 8 15:56:56 BST 2007


I'd like to apply a patch very similar to the one attached to kdelibs in a 
week's time (i.e., not tomorrow). I am still testing a couple of things 
and some bugs may show up.

I have redesigned KIO::Connection and adapted KIO::Slave, 
KIO::SlaveInterface and klauncher to the new API. The class is exported, 
but is private, so there should be no impact at all in any application. I 
have only found offending code in kio_file, which I will need to fix.

The new implementation completely does away with file descriptors. It uses 
KLocalSocket for now as its only backend, but I want to write at least 
one more, based on D-Bus. The main reason for this change is to make sure 
we can get rid of K3Network and, therefore, support more platforms.

In the process of developing it, I realised that KIO::SlaveInterface was 
an abstraction for KIO::Slave, but right now it's not possible to have 
one without the other, and it's the abstraction that imposes the format 
of int+QByteArray for as a communication method. It should be possible to 
merge them into a single class.

 kinit/klauncher.cpp        |   46 ---
 kinit/klauncher.h          |   11
 kio/CMakeLists.txt         |    2
 kio/kio/connection.cpp     |  678 
++++++++++++++++++++++++++++-----------------
 kio/kio/connection.h       |  130 ++++----
 kio/kio/connection_p.h     |   82 +++++
 kio/kio/dataslave.cpp      |    2
 kio/kio/scheduler.cpp      |    1
 kio/kio/slave.cpp          |  223 +++++---------
 kio/kio/slave.h            |   14
 kio/kio/slavebase.cpp      |  146 +++------
 kio/kio/slaveinterface.cpp |   87 ++---
 kio/kio/slaveinterface.h   |   15
 kio/kio/slaveinterface_p.h |   63 ++++
 14 files changed, 860 insertions(+), 640 deletions(-)

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: new-kio-connection.diff.gz
Type: application/x-gzip
Size: 15910 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070708/4d804562/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070708/4d804562/attachment.sig>


More information about the kde-core-devel mailing list