namespace KIO

Name of the protocol supported by this slave More...

List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Methods

Public Members


Detailed Description

Name of the protocol supported by this slave

AuthInfo (class)

AuthInfo

This class is intended to make it easier to prompt for, cache and retrieve authorization information.

NOTE: If you extend this class to add additional paramters do not forget to overload the stream insertion and extraction operators ("<<" and ">>") so that the added data can be correctly serialzed.

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, optionnally 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.

Parameters:
lstItemsThe file items representing several files or directories.
permissionsthe permissions we want to set
maskthe bits we are allowed to change For instance, if mask is 0077, we don't change the "user" bits, only "group" and "others".
newOwnerIf non-empty, the new owner for the files
newGroupIf non-empty, the new group for the files
recursivewhether 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:
sizesize in 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:
totalSizetotal size in bytes
processedSizeprocessed size in bytes
speedspeed 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:
sizethe sum of the size of the _files_
showSizewhether 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.

QString  findDeviceMountPoint ( const QString& device )

findDeviceMountPoint

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<UDSAtom> UDSEntry

UDSEntry

An entry is the list of atoms containing all the informations for a file or URL

typedef QValueList<UDSEntry> UDSEntryList

UDSEntryList

typedef QValueListIterator<UDSEntry> UDSEntryListIterator

UDSEntryListIterator

typedef QValueListConstIterator<UDSEntry> UDSEntryListConstIterator

UDSEntryListConstIterator

MetaData (class)

MetaData

SimpleJob *  mkdir ( const KURL& url, int permissions = -1 )

mkdir

Creates a single directory.

Parameters:
urlThe URL of the directory to create.
permissionsThe 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:
urlThe 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:
urlThe URL of file or directory.
permissionsThe 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:
srcThe original URL
destThe final URL
overwritewhether 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:
targetThe string that will become the "target" of the link (can be relative)
destThe symlink to create.
overwritewhether 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:
urlThe URL isn't passed to the slave, but is used to know which slave to send it to :-)
dataPacked 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:
roMount read-only if true.
fstypeFile system type (e.g. "ext2", can be 0L).
devDevice (e.g. /dev/sda0).
pointMount point, can be null.

SimpleJob * unmount ( const QString & point, bool showProgressInfo = true )

unmount

Unmount filesystem.

Special job for kio_file.

Parameters:
mountPoint to unmount.

SimpleJob * http_update_cache ( const KURL& url, bool no_cache, time_t expireDate)

http_update_cache

HTTP cache update

Parameters:
urlUrl to update, protocol must be "http".
no_cacheIf true, cache entry for url is deleted.
expireDateLocal machine time indicating when the entry is supposed to expire.

StatJob *  stat ( const KURL& url, bool showProgressInfo = true )

stat

Find all details for one file or directory.

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:
urlWhere to write data.
permissionsMay be -1. In this case no special permission mode is set.
overwriteIf 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:
urlWhere to write data.
postDataEncoded 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:
srcWhere to get the file.
destWhere to put the file.
permissionsMay be -1. In this case no special permission mode is set.
overwriteIf 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:
srcWhere to get the file.
destWhere to put the file.
permissionsMay be -1. In this case no special permission mode is set.
overwriteIf true, any existing file will be overwritten.
resume

SimpleJob * file_delete ( const KURL& src, bool showProgressInfo = true)

file_delete

Delete a single file.

Parameters:
srcFile 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:
srcThe existing file or directory, 'target' of the link.
destDirDestination 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:
srcfile to delete
shredIf 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

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:
captionthe caption for the dialog box
srcthe file/dir we're trying to copy, as it's part of the text message
destthe destination file/dir, i.e. the one that already exists
modeparameters for the dialog (which buttons to show...),
newDestthe new destination path, valid if R_RENAME was returned.
sizeSrcsize of source file
sizeDestsize of destination file
ctimeSrccreation time of source file
ctimeDestcreation time of destination file
mtimeSrcmodification time of source file
mtimeDestmodification time of destination file

See also: RenameDlg_Mode

Scheduler (class)

Scheduler

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' }

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 }

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: faure on ftp.kde.com on Wed Jun 20 13:26:37 2001, using kdoc 2.0a53.