Make a branch to make krunner Good Enough For Aaron™.
[kdebase/uwolfer.git] / runtime / kioslave / DESIGN
blob92a03b212ac948a77342541923d08c8a17b9dda6
1 What is a kioslave you ask yourself?
3 A kioslave is a program designed to be intimately familiar with a certian
4 protocol, so that a standardized interface can be used to get at data from
5 any number of places.  A few examples are the http and ftp kioslaves,
6 which using nearly identical methods will retrieve data from an http or
7 ftp server respectively.
9 Well, that's nice.  How do they work?
11 To understand it, you'll need two ice cubes, a pair of handcuffs, and a
12 ferret.  Some Crisco (or other shortening) is optional.  Well, that aside,
13 this document focuses on the business end of the whole kio library.  The
14 ioslave. See the documentation of the SlaveBase class for the methods
15 you need to reimplement, and see 
16 http://developer.kde.org/documentation/design/kde/ioslaves/ for more docu
17 online.
19 That's nice, but how can I use it?
21 Any time you'd like to use non blocking IO over a high level protocol
22 (such as HTTP or FTP) a kioslave is for you.
24 That's nice, but how do I use it?
26 Basically, you create "jobs" by calling a public KIO::blah method
27 (the correct prototypes, etc, are in kio/job.h). Once this is done, you
28 connect to the result() signal, and wait for the result. There are
29 other signals emitted by jobs, see kio/jobclasses.h. Once again,
30 see the online documentation for more.
33 If you are interested in working on an ioslave,
34 the following slaves are severely lacking in functionality:
36         SMTP
37         SMB
39 -------------
41 Original document by Rich.
42 Updated for KDE 2 by David.