|
|
This variable controls whether the dialog should be deleted or only cleaned when the KIO::Job is finished ( or canceled ).
If your dialog is embedded widget and not a separate window, you should set this variable to true in the constructor of your custom dialog.
If true - Dialog will only call method slotClean. If false - Dialog will be deleted.
AuthInfo (class) | AuthInfo |
QDataStream& operator<< (QDataStream& s, const AuthInfo& a)
| operator<< |
Flag to indicate the persistence of the given password.
This is a two-way flag when set before calling openPassDlg makes the "keep Password" check box will visible to the user. In return the flag will indicate the state of the check box. By default if the flag is checked the password will be cached for the entire life of the current KDE session otherwise the cached password is deleted right after the application using it has been closed.
QDataStream& operator>> (QDataStream& s, AuthInfo& a)
| operator>> |
NetRC (class) | NetRC |
This class provides an interface for parsing
ChmodInfo (struct) | ChmodInfo |
ChmodJob (class) | ChmodJob |
This job changes permissions on a list of files or directories, optionally in a recursive manner.
ChmodJob * chmod ( const KFileItemList& lstItems, int permissions, int mask,
QString newOwner, QString newGroup,
bool recursive, bool showProgressInfo = true )
| chmod |
Change permissions/ownership on several files or directories, optionally recursively. This version of chmod uses a KFileItemList so that it directly knows what to do with the items. TODO: a version that takes a KURL::List, and a general job that stats each url and returns a KFileItemList.
Note that change of ownership is only supported for local files.
Inside directories, the "x" bits will only be changed for files that had at least one "x" bit before, and for directories. This emulates the behaviour of chmod +X.
Parameters:
lstItems | The file items representing several files or directories. |
permissions | the permissions we want to set |
mask | the bits we are allowed to change For instance, if mask is 0077, we don't change the "user" bits, only "group" and "others". |
newOwner | If non-empty, the new owner for the files |
newGroup | If non-empty, the new group for the files |
recursive | whether to open directories recursively |
Returns: The job handling the operation.
Task (struct) | Task |
Connection (class) | Connection |
This class provides a simple means for IPC between two applications via a pipe. It handles a queue of commands to be sent, and has a internal signal called after a command has been sent, to send the next one (FIFO).
QString convertSize ( unsigned long size )
| convertSize |
Convert size from bytes to the string representation.
Parameters:
size | size in bytes |
Returns: converted size as a string - e.g. 123.4 kB , 12.0 MB
QString convertSize64 ( long long size )
| convertSize64 |
Convert size from bytes to the string representation.
### KDE 3.0: remove 64 suffix (for now it's needed to not break SC)
Parameters:
size | size in bytes |
Returns: converted size as a string - e.g. 123.4 kB , 12.0 MB
QString convertSizeFromKB ( unsigned long kbSize )
| convertSizeFromKB |
Convert size from kilo-bytes to the string representation. Don't use convertSize( size * 1024 ), this easily goes off the 32-bit limit.
### KDE 3.0 : add support for long long
Parameters:
size | size in kilo-bytes |
Returns: converted size as a string - e.g. 123.4 kB , 12.0 MB
QTime calculateRemaining ( unsigned long totalSize, unsigned long processedSize, unsigned long speed )
| calculateRemaining |
Calculate remaining time from total size, processed size and speed.
Parameters:
totalSize | total size in bytes |
processedSize | processed size in bytes |
speed | speed in bytes pre second |
Returns: calculated remaining time
QString itemsSummaryString (uint items, uint files, uint dirs, unsigned long size, bool showSize)
| itemsSummaryString |
Helper for showing information about a set of files and directories
items
= files
+ dirs
+ number of symlinks :)
Parameters:
size | the sum of the size of the _files_ |
showSize | whether to show the size in the result |
QString itemsSummaryString64 (uint items, uint files, uint dirs, long long size, bool showSize)
| itemsSummaryString64 |
Helper for showing information about a set of files and directories
items
= files
+ dirs
+ number of symlinks :)
### KDE 3.0: remove 64 suffix (for now it's needed to not break SC)
Parameters:
size | the sum of the size of the _files_ |
showSize | whether to show the size in the result |
QString encodeFileName ( const QString & str )
| encodeFileName |
Encode (from the text displayed to the real filename) This translates % into %% and / into %2f Used by KIO::link, for instance.
QString decodeFileName ( const QString & str )
| decodeFileName |
Decode (from the filename to the text displayed) This translates %2[fF] into / and %% into %
enum Error { ERR_CANNOT_OPEN_FOR_READING = 1, ERR_CANNOT_OPEN_FOR_WRITING = 2, ERR_CANNOT_LAUNCH_PROCESS = 3, ERR_INTERNAL = 4, ERR_MALFORMED_URL = 5, ERR_UNSUPPORTED_PROTOCOL = 6, ERR_NO_SOURCE_PROTOCOL = 7, ERR_UNSUPPORTED_ACTION = 8, ERR_IS_DIRECTORY = 9, ERR_IS_FILE = 10, ERR_DOES_NOT_EXIST = 11, ERR_FILE_ALREADY_EXIST = 12, ERR_DIR_ALREADY_EXIST = 13, ERR_UNKNOWN_HOST = 14, ERR_ACCESS_DENIED = 15, ERR_WRITE_ACCESS_DENIED = 16, ERR_CANNOT_ENTER_DIRECTORY = 17, ERR_PROTOCOL_IS_NOT_A_FILESYSTEM = 18, ERR_CYCLIC_LINK = 19, ERR_USER_CANCELED = 20, ERR_CYCLIC_COPY = 21, ERR_COULD_NOT_CREATE_SOCKET = 22, ERR_COULD_NOT_CONNECT = 23, ERR_CONNECTION_BROKEN = 24, ERR_NOT_FILTER_PROTOCOL = 25, ERR_COULD_NOT_MOUNT = 26, ERR_COULD_NOT_UNMOUNT = 27, ERR_COULD_NOT_READ = 28, ERR_COULD_NOT_WRITE = 29, ERR_COULD_NOT_BIND = 30, ERR_COULD_NOT_LISTEN = 31, ERR_COULD_NOT_ACCEPT = 32, ERR_COULD_NOT_LOGIN = 33, ERR_COULD_NOT_STAT = 34, ERR_COULD_NOT_CLOSEDIR = 35, ERR_COULD_NOT_MKDIR = 37, ERR_COULD_NOT_RMDIR = 38, ERR_CANNOT_RESUME = 39, ERR_CANNOT_RENAME = 40, ERR_CANNOT_CHMOD = 41, ERR_CANNOT_DELETE = 42, ERR_SLAVE_DIED = 43, ERR_OUT_OF_MEMORY = 44, ERR_UNKNOWN_PROXY_HOST = 45, ERR_COULD_NOT_AUTHENTICATE = 46, ERR_ABORTED = 47, ERR_INTERNAL_SERVER = 48, ERR_SERVER_TIMEOUT = 49, ERR_SERVICE_NOT_AVAILABLE = 50, ERR_UNKNOWN = 51, ERR_UNKNOWN_INTERRUPT = 53, ERR_CANNOT_DELETE_ORIGINAL = 54, ERR_CANNOT_DELETE_PARTIAL = 55, ERR_CANNOT_RENAME_ORIGINAL = 56, ERR_CANNOT_RENAME_PARTIAL = 57, ERR_NEED_PASSWD = 58, ERR_CANNOT_SYMLINK = 59, ERR_NO_CONTENT = 60, ERR_DISK_FULL = 61, ERR_IDENTICAL_FILES = 62 } | Error |
Error codes that can be emitted by KIO.
enum UDSAtomTypes { UDS_STRING = 1, UDS_LONG = 2, UDS_TIME = 4 | UDS_LONG, UDS_SIZE = 8 | UDS_LONG, UDS_USER = 16 | UDS_STRING, UDS_GROUP = 32 | UDS_STRING, UDS_NAME = 64 | UDS_STRING, UDS_ACCESS = 128 | UDS_LONG, UDS_MODIFICATION_TIME = 256 | UDS_TIME, UDS_ACCESS_TIME = 512 | UDS_TIME, UDS_CREATION_TIME = 1024 | UDS_TIME, UDS_FILE_TYPE = 2048 | UDS_LONG, UDS_LINK_DEST = 4096 | UDS_STRING, UDS_URL = 8192 | UDS_STRING, UDS_MIME_TYPE = 16384 | UDS_STRING, UDS_GUESSED_MIME_TYPE = 16392 | UDS_STRING } | UDSAtomTypes |
Constants used to specify the type of a KUDSAtom.
enum CacheControl { CC_CacheOnly, CC_Cache, CC_Verify, CC_Reload } | CacheControl |
KIO::CacheControl parseCacheControl (const QString &cacheControl)
| parseCacheControl |
QString getCacheControlString (KIO::CacheControl cacheControl)
| getCacheControlString |
QString findDeviceMountPoint ( const QString& device )
| findDeviceMountPoint |
Returns the mount point where device
is mounted
right now. This means, it has to be mounted, not just
defined in fstab.
QString findPathMountPoint ( const QString & filename )
| findPathMountPoint |
Returns the mount point on which resides filename
.
For instance if /home is a separate partition, findPathMountPoint("/home/user/blah")
will return /home
bool probably_slow_mounted (const QString& filename)
| probably_slow_mounted |
checks if the path belongs to a file system that is probably slow. It checks for NFS or for paths belonging to automounted paths not yet mounted
UDSAtom (class) | UDSAtom |
Universal Directory Service
Any file or URL can be represented by the UDSEntry type below A UDSEntry is a list of atoms Each atom contains a specific bit of information for the file
The following UDS constants represent the different possible values for m_uds in the UDS atom structure below
Each atom contains a specific bit of information for the file
typedef QValueList | UDSEntry |
An entry is the list of atoms containing all the informations for a file or URL
typedef QValueList | UDSEntryList |
typedef QValueListIterator | UDSEntryListIterator |
typedef QValueListConstIterator | UDSEntryListConstIterator |
MetaData (class) | MetaData |
CacheInfo (class) | CacheInfo |
SimpleJob * mkdir ( const KURL& url, int permissions = -1 )
| mkdir |
Creates a single directory.
Parameters:
url | The URL of the directory to create. |
permissions | The permissions to set after creating the directory. |
Returns: A pointer to the job handling the operation.
SimpleJob * rmdir ( const KURL& url )
| rmdir |
Remove a single directory.
The directory is assumed to be empty.
Parameters:
url | The URL of the directory to remove. |
Returns: A pointer to the job handling the operation.
SimpleJob * chmod ( const KURL& url, int permissions )
| chmod |
Change permissions on a file or directory. See the other chmod below for changing many files or directories.
Parameters:
url | The URL of file or directory. |
permissions | The permissions to set. |
Returns: The job handling the operation.
SimpleJob * rename ( const KURL& src, const KURL & dest, bool overwrite )
| rename |
Rename a file or directory. Warning: this operation fails if a direct renaming is not possible (like with files or dirs on separate partitions) Use move or file_move in this case.
Parameters:
src | The original URL |
dest | The final URL |
overwrite | whether to automatically overwrite if the dest exists |
Returns: The job handling the operation.
SimpleJob * symlink ( const QString & target, const KURL& dest, bool overwrite, bool showProgressInfo = true )
| symlink |
Create or move a symlink. This is the lowlevel operation, similar to file_copy and file_move. It doesn't do any check (other than those the slave does) and it doesn't show rename and skip dialogs - use KIO::link for that.
Parameters:
target | The string that will become the "target" of the link (can be relative) |
dest | The symlink to create. |
overwrite | whether to automatically overwrite if the dest exists |
Returns: The job handling the operation.
SimpleJob * special ( const KURL& url, const QByteArray & data, bool showProgressInfo = true )
| special |
Execute any command that is specific to one slave (protocol).
Examples are : HTTP POST, mount and unmount (kio_file)
Parameters:
url | The URL isn't passed to the slave, but is used to know which slave to send it to :-) |
data | Packed data. The meaning is completely dependent on the
slave, but usually starts with an int for the command number.
|
SimpleJob * mount ( bool ro, const char *fstype, const QString& dev, const QString& point, bool showProgressInfo = true )
| mount |
Mount filesystem.
Special job for kio_file
.
Parameters:
ro | Mount read-only if true .
|
fstype | File system type (e.g. "ext2", can be 0L). |
dev | Device (e.g. /dev/sda0). |
point | Mount point, can be null .
|
SimpleJob * unmount ( const QString & point, bool showProgressInfo = true )
| unmount |
Unmount filesystem.
Special job for kio_file
.
Parameters:
mount | Point to unmount. |
SimpleJob * http_update_cache ( const KURL& url, bool no_cache, time_t expireDate)
| http_update_cache |
HTTP cache update
Parameters:
url | Url to update, protocol must be "http". |
no_cache | If true, cache entry for url is deleted.
|
expireDate | Local machine time indicating when the entry is supposed to expire. |
CacheInfo* getCacheInfo (const KURL& url)
| getCacheInfo |
Parameters:
url | Url to be checked. |
StatJob * stat ( const KURL& url, bool showProgressInfo = true )
| stat |
Find all details for one file or directory.
StatJob * stat ( const KURL& url, bool sideIsSource, short int details, bool showProgressInfo = true )
| stat |
Find all details for one file or directory.
This version of the call includes two additional booleans, sideIsSource
and details
.
Parameters:
sideIsSource | is true when stating a source file (we will do a get on it if the stat works) and false when stating a destination file (target of a copy). |
details | selects the level of details we want. By default this is 2 (all details wanted, including modification time, size, etc.), setDetails(1) is used when deleting: we don't need all the information if it takes too much time, no need to follow symlinks etc. setDetails(0) is used for very simple probing: we'll only get the answer "it's a file or a directory, or it doesn't exist". This is used by KRun. |
TransferJob * get ( const KURL& url, bool reload=false, bool showProgressInfo = true )
| get |
Get (a.k.a. read).
The slave emits the data through data().
TransferJob * put ( const KURL& url, int permissions,
bool overwrite, bool resume, bool showProgressInfo = true )
| put |
Put (a.k.a. write)
Parameters:
url | Where to write data. |
permissions | May be -1. In this case no special permission mode is set. |
overwrite | If true , any existing file will be overwritten.
|
resume |
TransferJob * http_post ( const KURL& url, const QByteArray &postData,
bool showProgressInfo = true )
| http_post |
HTTP POST (for form data).
Example: job = KIO::http_post( url, postData, false ); job->addMetaData("content-type", contentType ); job->addMetaData("referrer", referrerURL);
postData
is the data that you want to send and
contentType
is the format of that data.
You MUST specify content-type!
Often contentType
is "application/x-www-form-urlencoded" and
the postData
is then an ASCII string (without null-termination!)
with characters like space, linefeed and percent escaped like %20,
%0A and %25.
Parameters:
url | Where to write data. |
postData | Encoded data to post. |
MimetypeJob * mimetype ( const KURL& url,
bool showProgressInfo = true )
| mimetype |
Find mimetype for one file or directory.
FileCopyJob * file_copy ( const KURL& src, const KURL& dest, int permissions=-1,
bool overwrite=false, bool resume=false,
bool showProgressInfo = true)
| file_copy |
Copy a single file.
Uses either SlaveBase::copy() if the slave supports that or get() and put() otherwise.
Parameters:
src | Where to get the file. |
dest | Where to put the file. |
permissions | May be -1. In this case no special permission mode is set. |
overwrite | If true , any existing file will be overwritten.
|
resume |
FileCopyJob * file_move ( const KURL& src, const KURL& dest, int permissions=-1,
bool overwrite=false, bool resume=false,
bool showProgressInfo = true)
| file_move |
Move a single file.
Use either SlaveBase::rename() if the slave supports that, or copy() and del() otherwise, or eventually get() & put() & del()
Parameters:
src | Where to get the file. |
dest | Where to put the file. |
permissions | May be -1. In this case no special permission mode is set. |
overwrite | If true , any existing file will be overwritten.
|
resume |
SimpleJob * file_delete ( const KURL& src, bool showProgressInfo = true)
| file_delete |
Delete a single file.
Parameters:
src | File to delete. |
ListJob * listDir ( const KURL& url, bool showProgressInfo = true )
| listDir |
List the contents of url
, which is assumed to be a directory.
"." and ".." are returned, filter them out if you don't want them.
ListJob * listRecursive ( const KURL& url, bool showProgressInfo = true )
| listRecursive |
The same as the previous method, but recurses subdirectories.
"." and ".." are returned but only for the toplevel directory. Filter them out if you don't want them.
CopyJob * copy ( const KURL& src, const KURL& dest, bool showProgressInfo = true )
| copy |
Copy a file or directory src
into the destination @dest,
which can be a file (including the final filename) or a directory
(into which src
will be copied).
This emulates the cp
command completely.
CopyJob * copyAs ( const KURL& src, const KURL& dest, bool showProgressInfo = true )
| copyAs |
Copy a file or directory src
into the destination @dest,
which is the destination name in any case, even for a directory.
As opposed to copy, this doesn't emulate cp
, but is the only
way to copy a directory, giving it a new name and getting an error
box if a directory already exists with the same name.
CopyJob * copy ( const KURL::List& src, const KURL& dest, bool showProgressInfo = true )
| copy |
Copy a list of file/dirs src
into a destination directory dest
.
CopyJob * move ( const KURL& src, const KURL& dest, bool showProgressInfo = true )
| move |
See also: copy
CopyJob * moveAs ( const KURL& src, const KURL& dest, bool showProgressInfo = true )
| moveAs |
See also: copyAs
CopyJob * move ( const KURL::List& src, const KURL& dest, bool showProgressInfo = true )
| move |
See also: copy
CopyJob * link ( const KURL& src, const KURL& destDir, bool showProgressInfo = true )
| link |
Create a link.
Parameters:
src | The existing file or directory, 'target' of the link. |
destDir | Destination directory where the link will be created. If the protocols and hosts are the same, a Unix symlink will be created. Otherwise, a .desktop file of Type Link and pointing to the src URL will be created. |
CopyJob * link ( const KURL::List& src, const KURL& destDir, bool showProgressInfo = true )
| link |
See also: link
CopyJob * linkAs ( const KURL& src, const KURL& dest, bool showProgressInfo = true )
| linkAs |
See also: link, and, copyAs
DeleteJob * del ( const KURL& src, bool shred = false, bool showProgressInfo = true )
| del |
Delete a file or directory.
Parameters:
src | file to delete |
shred | If true , delete in a way that makes recovery impossible
(only supported for local files currently)
|
DeleteJob * del ( const KURL::List& src, bool shred = false, bool showProgressInfo = true )
| del |
Slave (class) | Slave |
SlaveInterface (class) | SlaveInterface |
There are two classes that specifies the protocol between application (job) and kioslave. SlaveInterface is the class to use on the application end, SlaveBase is the one to use on the slave end.
A call to foo() results in a call to slotFoo() on the other end.
Job (class) | Job |
The base class for all jobs. For all jobs created in an application, the code looks like
KIO::Job * job = KIO::someoperation( some parameters ); connect( job, SIGNAL( result( KIO::Job * ) ), this, SLOT( slotResult( KIO::Job * ) ) ); |
(other connects, specific to the job)
And slotResult is usually at least:
if ( job->error() ) job->showErrorDialog( this or 0L ); |
SimpleJob (class) | SimpleJob |
A simple job (one url and one command). This is the base class for all jobs that are scheduled. Other jobs are high-level jobs (CopyJob, DeleteJob, FileCopyJob...) that manage subjobs but aren't scheduled directly.
StatJob (class) | StatJob |
TransferJob (class) | TransferJob |
The transfer job pumps data into and/or out of a Slave. Data is sent to the slave on request of the slave (dataReq). If data coming from the slave can not be handled, the reading of data from the slave should be suspended.
MimetypeJob (class) | MimetypeJob |
FileCopyJob (class) | FileCopyJob |
The FileCopyJob copies data from one place to another.
ListJob (class) | ListJob |
CopyInfo (struct) | CopyInfo |
CopyJob (class) | CopyJob |
DeleteJob (class) | DeleteJob |
NetAccess (class) | NetAccess |
Net Transparency, formerly provided by kfmlib, but now done with KIO::Jobs.
This class isn't meant to be used as a class but only as a simple
namespace for static functions, though an instance of the class
is built for internal purposes. Whereas a kiojob
is
asynchronous, meaning that the developer has to connect slots
for it, KIO::NetAccess
provides synchronous downloads and
uploads, as well as temporary file creation and removal.
Port to kio done by David Faure, faure@kde.org
PasswordDialog (class) | PasswordDialog |
A dialog for requesting a login and a password from the end user.
KIO-Slave authors are encouraged to use SlaveBase::openPassDlg instead of directly instantiating this dialog.
Job * pasteClipboard ( const KURL& _dest_url, bool move = false )
| pasteClipboard |
void pasteData ( const KURL& _dest_url, const QByteArray& _data )
| pasteData |
bool isClipboardEmpty ()
| isClipboardEmpty |
PreviewJob (class) | PreviewJob |
PreviewJob * filePreview ( const KFileItemList &items, int width, int height = 0, int iconSize = 0, int iconAlpha = 70, bool scale = true, bool save = true, const QStringList *enabledPlugins = 0 )
| filePreview |
Generate or retrieve a preview image for the given URL.
Parameters:
items | files to get previews for |
width | the maximum width to use |
height | the maximum height to use, if this is 0, the same value as width is used. |
iconSize | the size of the mimetype icon to overlay over the preview or zero to not overlay an icon. This has no effect if the preview plugin that will be used doesn't use icon overlays. |
iconAlpha | transparency to use for the icon overlay |
scale | if the image is to be scaled to the requested size or returned in its original size |
save | if the image should be cached for later use |
enabledPlugins | if non-zero, this points to a list containing the names of the plugins that may be used. see PreviewJob::availablePlugins. |
PreviewJob * filePreview ( const KURL::List &items, int width, int height = 0, int iconSize = 0, int iconAlpha = 70, bool scale = true, bool save = true, const QStringList *enabledPlugins = 0 )
| filePreview |
Same as above, but takes a URL list instead of KFileItemList
enum Progress { DEFAULT = 1, STATUSBAR = 2, LIST = 3 } | Progress |
enum RenameDlg_Mode { M_OVERWRITE = 1, M_OVERWRITE_ITSELF = 2, M_SKIP = 4, M_SINGLE = 8, M_MULTI = 16, M_RESUME = 32, M_NORENAME = 64 } | RenameDlg_Mode |
enum RenameDlg_Result { R_RESUME = 6, R_RESUME_ALL = 7, R_OVERWRITE = 4, R_OVERWRITE_ALL = 5, R_SKIP = 2, R_AUTO_SKIP = 3, R_RENAME = 1, R_CANCEL = 0 } | RenameDlg_Result |
RenameDlg (class) | RenameDlg |
RenameDlg_Result open_RenameDlg ( const QString & caption,
const QString& src, const QString & dest,
RenameDlg_Mode mode, QString& newDestPath,
unsigned long sizeSrc = (unsigned long) -1,
unsigned long sizeDest = (unsigned long) -1,
time_t ctimeSrc = (time_t) -1,
time_t ctimeDest = (time_t) -1,
time_t mtimeSrc = (time_t) -1,
time_t mtimeDest = (time_t) -1
)
| open_RenameDlg |
Construct a modal, parent-less "rename" dialog, and return a result code, as well as the new dest. Much easier to use than the class RenameDlg directly.
The following parameters bring optionnal information about src
and dest
Parameters:
caption | the caption for the dialog box |
src | the file/dir we're trying to copy, as it's part of the text message |
dest | the destination file/dir, i.e. the one that already exists |
mode | parameters for the dialog (which buttons to show...), |
newDest | the new destination path, valid if R_RENAME was returned. |
sizeSrc | size of source file |
sizeDest | size of destination file |
ctimeSrc | creation time of source file |
ctimeDest | creation time of destination file |
mtimeSrc | modification time of source file |
mtimeDest | modification time of destination file |
See also: RenameDlg_Mode
SlaveConfig (class) | SlaveConfig |
SlaveConfig
This class manages the configuration for io-slaves based on protocol and host. The Scheduler makes use of this class to configure the slave whenever it has to connect to a new host.
You only need to use this class if you want to override specific configuration items of an io-slave when the io-slave is used by your application.
Normally io-slaves are being configured by "kio_
SessionData (class) | SessionData |
This class hanldes static io-slave config information. Static config information are options that rarely change and even when they do they require user intervention. These kinds of options are mostly modifiable by the end user from the control panel and as such do not change as much as per session options, those that can be modified programtically. Some examples of static config information are things such as locale settings, location of caching directories, and state of the cookiejar.
Note that this class is only concerned with KDE configurations that are needed by the io-slaves.
Scheduler (class) | Scheduler |
The KIO::Scheduler manages io-slaves for the application. It also queues jobs and assigns the job to a slave when one becomes available.
There are 3 possible ways for a job to get a slave:
1) Direct. This is the default. When you create a job the KIO::Scheduler will be notified and will find either an existing slave that is idle or it will create a new slave for the job.
Example: TransferJob *job = KIO::get(KURL("http://www.kde.org"));
2) Scheduled If you create a lot of jobs, you might want not want to have a slave for each job. If you schedule a job, a maximum number of slaves will be created. When more jobs arrive, they will be queued. When a slave is finished with a job, it will be assigned a job from the queue.
Example: TransferJob *job = KIO::get(KURL("http://www.kde.org")); KIO::Scheduler::scheduleJob(job);
3) Connection Oriented For some operations it is important that multiple jobs use the same connection. This can only be ensured if all these jobs use the same slave.
You can ask the scheduler to open a slave for connection oriented operations. You can then use the scheduler to assign jobs to this slave. The jobs will be queued and the slave will handle these jobs one after the other.
Example: Slave *slave = KIO::Scheduler::getConnectedSlave( KURL("pop3://bastian:password@mail.kde.org")); TransferJob *job1 = KIO::get( KURL("pop3://bastian:password@mail.kde.org/msg1")); KIO::Scheduler::assignJobToSlave(slave, job1); TransferJob *job2 = KIO::get( KURL("pop3://bastian:password@mail.kde.org/msg2")); KIO::Scheduler::assignJobToSlave(slave, job2); TransferJob *job3 = KIO::get( KURL("pop3://bastian:password@mail.kde.org/msg3")); KIO::Scheduler::assignJobToSlave(slave, job3);
... Wait for jobs to finish...
KIO::Scheduler::disconnectSlave(slave);
enum SkipDlg_Result { S_SKIP = 1, S_AUTO_SKIP = 2, S_CANCEL = 0 } | SkipDlg_Result |
SkipDlg_Result open_SkipDlg ( bool _multi, const QString& _error_text = QString::null )
| open_SkipDlg |
SkipDlg (class) | SkipDlg |
SlaveBase (class) | SlaveBase |
There are two classes that specifies the protocol between application (job) and kioslave. SlaveInterface is the class to use on the application end, SlaveBase is the one to use on the slave end.
Slave implementations should simply inherit SlaveBase
A call to foo() results in a call to slotFoo() on the other end.
enum Command { CMD_HOST = '0', CMD_CONNECT = '1', CMD_DISCONNECT = '2', CMD_SLAVE_STATUS = '3', CMD_SLAVE_CONNECT = '4', CMD_NONE = 'A', CMD_TESTDIR = 'B', CMD_GET = 'C', CMD_PUT = 'D', CMD_STAT = 'E', CMD_MIMETYPE = 'F', CMD_LISTDIR = 'G', CMD_MKDIR = 'H', CMD_RENAME = 'I', CMD_COPY = 'J', CMD_DEL = 'K', CMD_CHMOD = 'L', CMD_SPECIAL = 'M', CMD_USERPASS = 'N', CMD_REPARSECONFIGURATION = 'O', CMD_META_DATA = 'P', CMD_SYMLINK = 'Q', CMD_SUBURL = 'R', CMD_MESSAGEBOXANSWER = 'S', CMD_RESUMEANSWER = 'T', CMD_CONFIG = 'U' } | Command |
Commands that can be invoked by a job.
enum Info { INF_TOTAL_SIZE = 10, INF_PROCESSED_SIZE = 11, INF_SPEED, INF_REDIRECTION = 20, INF_MIME_TYPE, INF_ERROR_PAGE, INF_WARNING, INF_GETTING_FILE, INF_NEED_PASSWD, INF_INFOMESSAGE, INF_META_DATA, INF_NETWORK_STATUS, INF_MESSAGEBOX } | Info |
Identifiers for KIO informational messages.
enum Message { MSG_DATA = 100, MSG_DATA_REQ, MSG_ERROR, MSG_CONNECTED, MSG_FINISHED, MSG_STAT_ENTRY, MSG_LIST_ENTRIES, MSG_RENAMED, MSG_RESUME, MSG_SLAVE_STATUS, MSG_SLAVE_ACK, MSG_NET_REQUEST, MSG_NET_DROP, MSG_NEED_SUBURL_DATA, MSG_CANRESUME, MSG_AUTH_KEY, MSG_DEL_AUTH_KEY } | Message |
Identifiers for KIO data messages.
TCPSlaveBase (class) | TCPSlaveBase |
There are two classes that specifies the protocol between application (job) and kioslave. SlaveInterface is the class to use on the application end, SlaveBase is the one to use on the slave end.
Slave implementations should simply inherit SlaveBase
A call to foo() results in a call to slotFoo() on the other end.
Generated by: dfaure on kde.faure.org on Thu Jan 17 22:16:53 2002, using kdoc 2.0a53. |