namespace KIO

A namespace for KIO globals. More...

List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Methods

Public Members


Detailed Description

Task (struct)

Connection (class)

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 )

Convert size from bytes to the string representation.

Parameters:

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 )

Calculate remaining time from total size, processed size and speed.

Parameters:

Returns: calculated remaining time

QString  encodeFileName ( const QString & str )

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 )

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 }

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 }

Constants used to specify the type of a KUDSAtom.

QString  findDeviceMountPoint ( const QString& device )

UDSAtom (class)

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

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

typedef QValueList<UDSEntry> UDSEntryList

typedef QValueListIterator<UDSEntry> UDSEntryListIterator

typedef QValueListConstIterator<UDSEntry> UDSEntryListConstIterator

MetaData (class)

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

Creates a single directory.

Parameters:

Returns: A pointer to the job handling the operation.

SimpleJob *  rmdir ( const KURL& url )

Remove a single directory.

The directory is assumed to be empty.

Parameters:

Returns: A pointer to the job handling the operation.

SimpleJob *  chmod ( const KURL& url, int permissions )

Change permissions on a file or directory.

Parameters:

Returns: The job handling the operation.

SimpleJob *  rename ( const KURL& src, const KURL & dest, bool overwrite )

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:

Returns: The job handling the operation.

SimpleJob *  symlink ( const QString & target, const KURL& dest, bool overwrite, bool showProgressInfo = true )

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:

Returns: The job handling the operation.

SimpleJob *  special ( const KURL& url, const QByteArray & data, bool showProgressInfo = true )

Execute any command that is specific to one slave (protocol).

Examples are : HTTP POST, mount and unmount (kio_file)

Parameters:

SimpleJob * mount ( bool ro, const char *fstype, const QString& dev, const QString& point, bool showProgressInfo = true )

Mount filesystem.

Special job for kio_file.

Parameters:

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

Unmount filesystem.

Special job for kio_file.

Parameters:

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

HTTP cache update

Parameters:

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

Find all details for one file or directory.

TransferJob * get ( const KURL& url, bool reload=false, bool showProgressInfo = true )

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 (a.k.a. write)

Parameters:

TransferJob * http_post ( const KURL& url, const QByteArray &postData, bool showProgressInfo = true )

HTTP POST (for form data).

Parameters:

MimetypeJob *  mimetype ( const KURL& url, bool showProgressInfo = true )

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)

Copy a single file.

Uses either SlaveBase::copy() if the slave supports that or get() and put() otherwise.

Parameters:

FileCopyJob * file_move ( const KURL& src, const KURL& dest, int permissions=-1, bool overwrite=false, bool resume=false, bool showProgressInfo = true)

Move a single file.

Use either SlaveBase::rename() if the slave supports that, or copy() and del() otherwise, or eventually get() & put() & del()

Parameters:

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

Delete a single file.

Parameters:

ListJob * listDir ( const KURL& url, bool showProgressInfo = true )

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 )

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 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 )

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 a list of file/dirs src into a destination directory dest.

CopyJob * move ( const KURL& src, const KURL& dest, bool showProgressInfo = true )

CopyJob * moveAs ( const KURL& src, const KURL& dest, bool showProgressInfo = true )

CopyJob * move ( const KURL::List& src, const KURL& dest, bool showProgressInfo = true )

CopyJob * link ( const KURL& src, const KURL& destDir, bool showProgressInfo = true )

Create a link.

Parameters:

CopyJob * link ( const KURL::List& src, const KURL& destDir, bool showProgressInfo = true )

CopyJob * linkAs ( const KURL& src, const KURL& dest, bool showProgressInfo = true )

See also: link, and, copyAs

DeleteJob * del ( const KURL& src, bool shred = false, bool showProgressInfo = true )

Delete a file or directory.

Parameters:

DeleteJob * del ( const KURL::List& src, bool shred = false, bool showProgressInfo = true )

Slave (class)

SlaveInterface (class)

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)

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)

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)

TransferJob (class)

The tranfer 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)

FileCopyJob (class)

The FileCopyJob copies data from one place to another.

ListJob (class)

CopyInfo (struct)

CopyJob (class)

DeleteJob (class)

KAutoMount (class)

This class implements synchronous mounting of devices, as well as showing a file-manager window after mounting a device, optionally. It is a wrapper around the asychronous KIO::special() call for mount, used by KMimeType.

KAutoUnmount (class)

This class implements synchronous unmounting of devices, It is a wrapper around the asychronous KIO::special() call for unmount, used by KMimeType.

KDirLister (class)

The dir lister deals with the kiojob used to list and update a directory, handles the timer, and has signals for the user of this class (e.g. konqueror view or kdesktop) to create/destroy its items when asked.

This class is independent from the graphical representation of the dir (icon container, tree view, ...) and it stores the items (as KFileItems).

Typical usage : Create an instance, Connect to at least update, clear, newItem, and deleteItem Call openURL - the signals will be called Reuse the instance when opening a new url (openURL) Destroy the instance when not needed anymore (usually destructor)

Advanced usage : call openURL with _keep = true to list directories without forgetting the ones previously read (e.g. for a tree view)

NetAccess (class)

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

PassDlg (class)

A dialog for requesting a login and a password to the user. KIO-Slave authors should have a look at SlaveBase::openPassDlg instead.

Job * pasteClipboard ( const KURL& _dest_url, bool move = false )

void  pasteData ( const KURL& _dest_url, const QByteArray& _data )

bool  isClipboardEmpty ()

enum Progress {DEFAULT = 1, STATUSBAR = 2, LIST = 3 }

ProgressBase (class)

Base class for IO progress dialogs.

This class does all initialization stuff for progress, like connecting signals to slots. All slots are implemented as pure virtual methods.

All custom IO progress dialog should inherit this class. Add your GUI code to the constructor and implemement those virtual methods which you need in order to display progress.

E.g. StatusbarProgress only implements slotTotalSize(), slotPercent() and slotSpeed().

Custom progress dialog will be used like this :


 // create job
 CopyJob* job = KIO::copy(...);
 // create a dialog
 MyCustomProgress *customProgress;
 customProgress = new MyCustomProgress();
 // connect progress with job
 customProgress->setJob( job );
 ...

There is a special method setStopOnClose() that controls the behavior of the dialog.

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 }

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 (class)

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 )

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:

Scheduler (class)

enum SkipDlg_Result {S_SKIP = 1, S_AUTO_SKIP = 2, S_CANCEL = 0 }

SkipDlg_Result  open_SkipDlg ( bool _multi, const QString& _error_text = QString::null )

SkipDlg (class)

SlaveBase (class)

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_DEL_AUTHORIZATION = 'U' }

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 }

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 }

Identifiers for KIO data messages.

StatusbarProgress (class)

This is a special IO progress widget.

Similarly to DefaultProgress, it's purpose is to show a progress of the IO operation.

Instead of creating a separate window, this is only a widget that can be easily embedded in a statusbar.

Usage of StatusbarProgress is little different. This dialog will be a part of some application.


 // create a dialog
 StatusbarProgress *statusProgress;
 statusProgress = new StatusbarProgress( statusBar() );
 statusBar()->insertWidget( statusProgress, statusProgress->width() , 0 );
 ...
 // create job and connect it to the progress
 CopyJob* job = KIO::copy(...);
 statusProgress->setJob( job );
 ...

TCPSlaveBase (class)

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: baudens@ke.mandrakesoft.com on Thu Oct 26 17:36:34 2000, using kdoc 2.0a40.