• Skip to content
  • Skip to link menu
KDE 4.3 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

KIO

jobclasses.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 /* This file is part of the KDE libraries
00003     Copyright (C) 2000 Stephan Kulow <coolo@kde.org>
00004                   2000-2009 David Faure <faure@kde.org>
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License as published by the Free Software Foundation; either
00009     version 2 of the License, or (at your option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     Library General Public License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public License
00017     along with this library; see the file COPYING.LIB.  If not, write to
00018     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019     Boston, MA 02110-1301, USA.
00020 */
00021 
00022 #ifndef KIO_JOBCLASSES_H
00023 #define KIO_JOBCLASSES_H
00024 
00025 #include <QtCore/QObject>
00026 #include <QtCore/QLinkedList>
00027 #include <QtCore/QStringList>
00028 
00029 #include <kurl.h>
00030 #include <kio/global.h>
00031 #include <kio/udsentry.h>
00032 
00033 #include <kcompositejob.h>
00034 
00035 
00036 namespace KIO {
00037 
00043     enum JobFlag {
00047       DefaultFlags = 0,
00048 
00052       HideProgressInfo = 1,
00053 
00061       Resume = 2,
00062 
00068       Overwrite = 4
00069     };
00070     Q_DECLARE_FLAGS(JobFlags, JobFlag)
00071     Q_DECLARE_OPERATORS_FOR_FLAGS(JobFlags)
00072 
00073     class JobUiDelegate;
00074 
00075     class JobPrivate;
00095     class KIO_EXPORT Job : public KCompositeJob {
00096         Q_OBJECT
00097 
00098     protected:
00099         Job();
00100         Job(JobPrivate &dd);
00101 
00102     public:
00103         virtual ~Job();
00104         void start() {} // Since KIO autostarts its jobs
00105 
00113         JobUiDelegate *ui() const;
00114 
00115     protected:
00121         virtual bool doKill();
00122 
00127         virtual bool doSuspend();
00128 
00133         virtual bool doResume();
00134 
00135     public:
00153         QString errorString() const;
00154 
00165         QStringList detailedErrorStrings(const KUrl *reqUrl = 0L,
00166                                          int method = -1) const;
00167 
00178         KDE_DEPRECATED void showErrorDialog( QWidget *parent = 0 );
00179 
00187         bool isInteractive() const;
00188 
00198         void setParentJob( Job* parentJob );
00199 
00205         Job* parentJob() const;
00206 
00214         void setMetaData( const KIO::MetaData &metaData);
00215 
00223         void addMetaData(const QString &key, const QString &value);
00224 
00232         void addMetaData(const QMap<QString,QString> &values);
00233 
00241         void mergeMetaData(const QMap<QString,QString> &values);
00242 
00246         MetaData outgoingMetaData() const;
00247 
00253         MetaData metaData() const;
00254 
00262         QString queryMetaData(const QString &key);
00263 
00264     protected:
00265 
00266     Q_SIGNALS:
00274         void canceled( KJob *job );
00275 
00282         void connected( KIO::Job *job );
00283 
00284     protected:
00292         virtual bool addSubjob( KJob *job );
00293 
00301         virtual bool removeSubjob( KJob *job );
00302 
00303     private:
00310         Q_PRIVATE_SLOT(d_func(), void slotSpeed( KJob *job, unsigned long speed ))
00311         Q_DECLARE_PRIVATE(Job)
00312     };
00313 
00314     class SimpleJobPrivate;
00321     class KIO_EXPORT SimpleJob : public KIO::Job {
00322     Q_OBJECT
00323 
00324     public:
00325         ~SimpleJob();
00326 
00327     protected:
00332         virtual bool doSuspend();
00333 
00338         virtual bool doResume();
00339 
00344         virtual bool doKill();
00345 
00346     public:
00351         const KUrl& url() const;
00352 
00357         virtual void putOnHold();
00358 
00362         static void removeOnHold();
00363 
00364     public Q_SLOTS:
00370         void slotError( int , const QString & );
00371 
00372     protected Q_SLOTS:
00377         virtual void slotFinished( );
00378 
00383         virtual void slotWarning( const QString & );
00384 
00390         virtual void slotMetaData( const KIO::MetaData &_metaData);
00391 
00392     protected:
00393         /*
00394          * Allow jobs that inherit SimpleJob and are aware
00395          * of redirections to store the SSL session used.
00396          * Retrieval is handled by SimpleJob::start
00397          * @param m_redirectionURL Reference to redirection URL,
00398          * used instead of m_url if not empty
00399          */
00400         void storeSSLSessionFromJob(const KUrl &m_redirectionURL);
00401 
00406         SimpleJob(SimpleJobPrivate &dd);
00407     private:
00408         Q_PRIVATE_SLOT(d_func(), void slotConnected())
00409         Q_PRIVATE_SLOT(d_func(), void slotProcessedSize( KIO::filesize_t data_size ))
00410         Q_PRIVATE_SLOT(d_func(), void slotSpeed( unsigned long speed ))
00411         Q_PRIVATE_SLOT(d_func(), void slotTotalSize( KIO::filesize_t data_size ))
00412         Q_PRIVATE_SLOT(d_func(), void _k_slotSlaveInfoMessage(const QString&))
00413 
00414         Q_DECLARE_PRIVATE(SimpleJob)
00415     };
00416 
00417     class StatJobPrivate;
00422     class KIO_EXPORT StatJob : public SimpleJob {
00423 
00424     Q_OBJECT
00425 
00426     public:
00427         enum StatSide {
00428             SourceSide,
00429             DestinationSide
00430         };
00431 
00432         ~StatJob();
00433 
00441         void setSide(StatSide side);
00442 
00450         KDE_DEPRECATED void setSide( bool source );
00451 
00461         void setDetails( short int details );
00462 
00468         const UDSEntry & statResult() const;
00469 
00470     Q_SIGNALS:
00478         void redirection( KIO::Job *job, const KUrl &url );
00479 
00487         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00488 
00489     protected Q_SLOTS:
00490         virtual void slotFinished();
00491         virtual void slotMetaData( const KIO::MetaData &_metaData);
00492     protected:
00493         StatJob(StatJobPrivate &dd);
00494 
00495     private:
00496         Q_PRIVATE_SLOT(d_func(), void slotStatEntry( const KIO::UDSEntry & entry ))
00497         Q_PRIVATE_SLOT(d_func(), void slotRedirection( const KUrl &url))
00498         Q_DECLARE_PRIVATE(StatJob)
00499     };
00500 
00501     class FileCopyJobPrivate;
00502     class TransferJobPrivate;
00509     class KIO_EXPORT TransferJob : public SimpleJob {
00510     Q_OBJECT
00511 
00512     public:
00513         ~TransferJob();
00514 
00519         void setModificationTime( const QDateTime& mtime );
00520 
00528         bool isErrorPage() const;
00529 
00536         void setAsyncDataEnabled(bool enabled);
00537 
00543         void sendAsyncData(const QByteArray &data);
00544 
00553         KDE_DEPRECATED void setReportDataSent(bool enabled);
00554 
00562         KDE_DEPRECATED bool reportDataSent() const;
00563 
00569         QString mimetype() const;
00570 
00576         void setTotalSize(KIO::filesize_t bytes);
00577 
00578     protected:
00583         virtual void slotResult( KJob *job );
00584 
00588         virtual bool doResume();
00589 
00590     Q_SIGNALS:
00600         void data( KIO::Job *job, const QByteArray &data );
00601 
00613         void dataReq( KIO::Job *job, QByteArray &data );
00614 
00622         void redirection( KIO::Job *job, const KUrl &url );
00623 
00631         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00632 
00638         void mimetype( KIO::Job *job, const QString &type );
00639 
00647         void canResume( KIO::Job *job, KIO::filesize_t offset );
00648 
00649 
00650     protected Q_SLOTS:
00651         virtual void slotRedirection( const KUrl &url);
00652         virtual void slotFinished();
00653         virtual void slotData( const QByteArray &data);
00654         virtual void slotDataReq();
00655         virtual void slotMimetype( const QString &mimetype );
00656         virtual void slotMetaData( const KIO::MetaData &_metaData);
00657 
00658     protected:
00659         TransferJob(TransferJobPrivate &dd);
00660     private:
00661         Q_PRIVATE_SLOT(d_func(), void slotErrorPage())
00662         Q_PRIVATE_SLOT(d_func(), void slotCanResume( KIO::filesize_t offset ))
00663         Q_PRIVATE_SLOT(d_func(), void slotPostRedirection())
00664         Q_PRIVATE_SLOT(d_func(), void slotNeedSubUrlData())
00665         Q_PRIVATE_SLOT(d_func(), void slotSubUrlData(KIO::Job*, const QByteArray &))
00666         Q_DECLARE_PRIVATE(TransferJob)
00667 
00668         // A FileCopyJob may control one or more TransferJobs
00669         friend class FileCopyJob;
00670         friend class FileCopyJobPrivate;
00671     };
00672 
00673     class StoredTransferJobPrivate;
00692     class KIO_EXPORT StoredTransferJob : public KIO::TransferJob {
00693         Q_OBJECT
00694 
00695     public:
00696         ~StoredTransferJob();
00697 
00703         void setData( const QByteArray& arr );
00704 
00709         QByteArray data() const;
00710 
00711     protected:
00712         StoredTransferJob(StoredTransferJobPrivate &dd);
00713     private:
00714         Q_PRIVATE_SLOT(d_func(), void slotStoredData( KIO::Job *job, const QByteArray &data ))
00715         Q_PRIVATE_SLOT(d_func(), void slotStoredDataReq( KIO::Job *job, QByteArray &data ))
00716 
00717         Q_DECLARE_PRIVATE(StoredTransferJob)
00718     };
00719 
00720     class MultiGetJobPrivate;
00727     class KIO_EXPORT MultiGetJob : public TransferJob {
00728     Q_OBJECT
00729 
00730     public:
00731         virtual ~MultiGetJob();
00732 
00740         void get(long id, const KUrl &url, const MetaData &metaData);
00741 
00742     Q_SIGNALS:
00749         void data( long id, const QByteArray &data);
00750 
00756         void mimetype( long id, const QString &type );
00757 
00765         void result( long id);
00766 
00767     protected Q_SLOTS:
00768         virtual void slotRedirection( const KUrl &url);
00769         virtual void slotFinished();
00770         virtual void slotData( const QByteArray &data);
00771         virtual void slotMimetype( const QString &mimetype );
00772 
00773     protected:
00774         MultiGetJob(MultiGetJobPrivate &dd);
00775     private:
00776         Q_DECLARE_PRIVATE(MultiGetJob)
00777     };
00778 
00779     class MimetypeJobPrivate;
00786     class KIO_EXPORT MimetypeJob : public TransferJob {
00787     Q_OBJECT
00788 
00789     public:
00790         ~MimetypeJob();
00791 
00792     protected Q_SLOTS:
00793         virtual void slotFinished( );
00794     protected:
00795         MimetypeJob(MimetypeJobPrivate &dd);
00796     private:
00797         Q_DECLARE_PRIVATE(MimetypeJob)
00798     };
00799 
00805     class KIO_EXPORT FileCopyJob : public Job {
00806     Q_OBJECT
00807 
00808     public:
00809         ~FileCopyJob();
00815         void setSourceSize(KIO::filesize_t size);
00816 
00824         void setModificationTime( const QDateTime& mtime );
00825 
00830         KUrl srcUrl() const;
00831 
00836         KUrl destUrl() const;
00837 
00838         bool doSuspend();
00839         bool doResume();
00840 
00841     Q_SIGNALS:
00852         void mimetype( KIO::Job *job, const QString &type );
00853 
00854     protected Q_SLOTS:
00859         virtual void slotResult( KJob *job );
00860 
00861     protected:
00862         FileCopyJob(FileCopyJobPrivate &dd);
00863 
00864     private:
00865         Q_PRIVATE_SLOT(d_func(), void slotStart())
00866         Q_PRIVATE_SLOT(d_func(), void slotData( KIO::Job *, const QByteArray &data))
00867         Q_PRIVATE_SLOT(d_func(), void slotDataReq( KIO::Job *, QByteArray &data))
00868         Q_PRIVATE_SLOT(d_func(), void slotMimetype( KIO::Job*, const QString& type ))
00869         Q_PRIVATE_SLOT(d_func(), void slotProcessedSize( KJob *job, qulonglong size ))
00870         Q_PRIVATE_SLOT(d_func(), void slotTotalSize( KJob *job, qulonglong size ))
00871         Q_PRIVATE_SLOT(d_func(), void slotPercent( KJob *job, unsigned long pct ))
00872         Q_PRIVATE_SLOT(d_func(), void slotCanResume( KIO::Job *job, KIO::filesize_t offset ))
00873 
00874         Q_DECLARE_PRIVATE(FileCopyJob)
00875     };
00876 
00877     class ListJobPrivate;
00885     class KIO_EXPORT ListJob : public SimpleJob {
00886     Q_OBJECT
00887 
00888     public:
00889         ~ListJob();
00890 
00896         const KUrl& redirectionUrl() const;
00897 
00901         void setUnrestricted(bool unrestricted);
00902 
00903     Q_SIGNALS:
00913         void entries( KIO::Job *job, const KIO::UDSEntryList& list); // TODO KDE5: use KIO::ListJob* argument to avoid casting
00914 
00923     void subError( KIO::ListJob *job, KIO::ListJob *subJob );
00924 
00932         void redirection( KIO::Job *job, const KUrl &url );
00933 
00941         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00942 
00943     protected Q_SLOTS:
00944         virtual void slotFinished( );
00945         virtual void slotMetaData( const KIO::MetaData &_metaData);
00946         virtual void slotResult( KJob *job );
00947 
00948     protected:
00949         ListJob(ListJobPrivate &dd);
00950 
00951     private:
00952         Q_PRIVATE_SLOT(d_func(), void slotListEntries( const KIO::UDSEntryList& list ))
00953         Q_PRIVATE_SLOT(d_func(), void slotRedirection( const KUrl &url ))
00954         Q_PRIVATE_SLOT(d_func(), void gotEntries( KIO::Job * subjob, const KIO::UDSEntryList& list ))
00955         Q_DECLARE_PRIVATE(ListJob)
00956     };
00957 
00958     class SpecialJobPrivate;
00970     class KIO_EXPORT SpecialJob : public TransferJob
00971     {
00972         Q_OBJECT
00973     public:
00980         explicit SpecialJob(const KUrl &url, const QByteArray &data = QByteArray());
00981 
00986         void setArguments(const QByteArray &data);
00987 
00992         QByteArray arguments() const;
00993 
00994     public:
00995         ~SpecialJob();
00996 
00997     private:
00998         Q_DECLARE_PRIVATE(SpecialJob)
00999     };
01000 }
01001 
01002 #endif

KIO

Skip menu "KIO"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.6.1
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal