• Skip to content
  • Skip to link menu
KDE 4.4 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 
00469         const UDSEntry & statResult() const;
00470 
00494         KUrl mostLocalUrl() const;
00495 
00496     Q_SIGNALS:
00504         void redirection( KIO::Job *job, const KUrl &url );
00505 
00513         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00514 
00515     protected Q_SLOTS:
00516         virtual void slotFinished();
00517         virtual void slotMetaData( const KIO::MetaData &_metaData);
00518     protected:
00519         StatJob(StatJobPrivate &dd);
00520 
00521     private:
00522         Q_PRIVATE_SLOT(d_func(), void slotStatEntry( const KIO::UDSEntry & entry ))
00523         Q_PRIVATE_SLOT(d_func(), void slotRedirection( const KUrl &url))
00524         Q_DECLARE_PRIVATE(StatJob)
00525     };
00526 
00527     class FileCopyJobPrivate;
00528     class TransferJobPrivate;
00535     class KIO_EXPORT TransferJob : public SimpleJob {
00536     Q_OBJECT
00537 
00538     public:
00539         ~TransferJob();
00540 
00545         void setModificationTime( const QDateTime& mtime );
00546 
00554         bool isErrorPage() const;
00555 
00562         void setAsyncDataEnabled(bool enabled);
00563 
00569         void sendAsyncData(const QByteArray &data);
00570 
00579         KDE_DEPRECATED void setReportDataSent(bool enabled);
00580 
00588         KDE_DEPRECATED bool reportDataSent() const;
00589 
00595         QString mimetype() const;
00596 
00602         void setTotalSize(KIO::filesize_t bytes);
00603 
00604     protected:
00609         virtual void slotResult( KJob *job );
00610 
00614         virtual bool doResume();
00615 
00616     Q_SIGNALS:
00626         void data( KIO::Job *job, const QByteArray &data );
00627 
00639         void dataReq( KIO::Job *job, QByteArray &data );
00640 
00648         void redirection( KIO::Job *job, const KUrl &url );
00649 
00657         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00658 
00664         void mimetype( KIO::Job *job, const QString &type );
00665 
00673         void canResume( KIO::Job *job, KIO::filesize_t offset );
00674 
00675 
00676     protected Q_SLOTS:
00677         virtual void slotRedirection( const KUrl &url);
00678         virtual void slotFinished();
00679         virtual void slotData( const QByteArray &data);
00680         virtual void slotDataReq();
00681         virtual void slotMimetype( const QString &mimetype );
00682         virtual void slotMetaData( const KIO::MetaData &_metaData);
00683 
00684     protected:
00685         TransferJob(TransferJobPrivate &dd);
00686     private:
00687         Q_PRIVATE_SLOT(d_func(), void slotErrorPage())
00688         Q_PRIVATE_SLOT(d_func(), void slotCanResume( KIO::filesize_t offset ))
00689         Q_PRIVATE_SLOT(d_func(), void slotPostRedirection())
00690         Q_PRIVATE_SLOT(d_func(), void slotNeedSubUrlData())
00691         Q_PRIVATE_SLOT(d_func(), void slotSubUrlData(KIO::Job*, const QByteArray &))
00692         Q_DECLARE_PRIVATE(TransferJob)
00693 
00694         // A FileCopyJob may control one or more TransferJobs
00695         friend class FileCopyJob;
00696         friend class FileCopyJobPrivate;
00697     };
00698 
00699     class StoredTransferJobPrivate;
00718     class KIO_EXPORT StoredTransferJob : public KIO::TransferJob {
00719         Q_OBJECT
00720 
00721     public:
00722         ~StoredTransferJob();
00723 
00729         void setData( const QByteArray& arr );
00730 
00735         QByteArray data() const;
00736 
00737     protected:
00738         StoredTransferJob(StoredTransferJobPrivate &dd);
00739     private:
00740         Q_PRIVATE_SLOT(d_func(), void slotStoredData( KIO::Job *job, const QByteArray &data ))
00741         Q_PRIVATE_SLOT(d_func(), void slotStoredDataReq( KIO::Job *job, QByteArray &data ))
00742 
00743         Q_DECLARE_PRIVATE(StoredTransferJob)
00744     };
00745 
00746     class MultiGetJobPrivate;
00753     class KIO_EXPORT MultiGetJob : public TransferJob {
00754     Q_OBJECT
00755 
00756     public:
00757         virtual ~MultiGetJob();
00758 
00766         void get(long id, const KUrl &url, const MetaData &metaData);
00767 
00768     Q_SIGNALS:
00775         void data( long id, const QByteArray &data);
00776 
00782         void mimetype( long id, const QString &type );
00783 
00791         void result( long id);
00792 
00793     protected Q_SLOTS:
00794         virtual void slotRedirection( const KUrl &url);
00795         virtual void slotFinished();
00796         virtual void slotData( const QByteArray &data);
00797         virtual void slotMimetype( const QString &mimetype );
00798 
00799     protected:
00800         MultiGetJob(MultiGetJobPrivate &dd);
00801     private:
00802         Q_DECLARE_PRIVATE(MultiGetJob)
00803     };
00804 
00805     class MimetypeJobPrivate;
00812     class KIO_EXPORT MimetypeJob : public TransferJob {
00813     Q_OBJECT
00814 
00815     public:
00816         ~MimetypeJob();
00817 
00818     protected Q_SLOTS:
00819         virtual void slotFinished( );
00820     protected:
00821         MimetypeJob(MimetypeJobPrivate &dd);
00822     private:
00823         Q_DECLARE_PRIVATE(MimetypeJob)
00824     };
00825 
00831     class KIO_EXPORT FileCopyJob : public Job {
00832     Q_OBJECT
00833 
00834     public:
00835         ~FileCopyJob();
00841         void setSourceSize(KIO::filesize_t size);
00842 
00850         void setModificationTime( const QDateTime& mtime );
00851 
00856         KUrl srcUrl() const;
00857 
00862         KUrl destUrl() const;
00863 
00864         bool doSuspend();
00865         bool doResume();
00866 
00867     Q_SIGNALS:
00878         void mimetype( KIO::Job *job, const QString &type );
00879 
00880     protected Q_SLOTS:
00885         virtual void slotResult( KJob *job );
00886 
00887     protected:
00888         FileCopyJob(FileCopyJobPrivate &dd);
00889 
00890     private:
00891         Q_PRIVATE_SLOT(d_func(), void slotStart())
00892         Q_PRIVATE_SLOT(d_func(), void slotData( KIO::Job *, const QByteArray &data))
00893         Q_PRIVATE_SLOT(d_func(), void slotDataReq( KIO::Job *, QByteArray &data))
00894         Q_PRIVATE_SLOT(d_func(), void slotMimetype( KIO::Job*, const QString& type ))
00895         Q_PRIVATE_SLOT(d_func(), void slotProcessedSize( KJob *job, qulonglong size ))
00896         Q_PRIVATE_SLOT(d_func(), void slotTotalSize( KJob *job, qulonglong size ))
00897         Q_PRIVATE_SLOT(d_func(), void slotPercent( KJob *job, unsigned long pct ))
00898         Q_PRIVATE_SLOT(d_func(), void slotCanResume( KIO::Job *job, KIO::filesize_t offset ))
00899 
00900         Q_DECLARE_PRIVATE(FileCopyJob)
00901     };
00902 
00903     class ListJobPrivate;
00911     class KIO_EXPORT ListJob : public SimpleJob {
00912     Q_OBJECT
00913 
00914     public:
00915         ~ListJob();
00916 
00922         const KUrl& redirectionUrl() const;
00923 
00927         void setUnrestricted(bool unrestricted);
00928 
00929     Q_SIGNALS:
00939         void entries( KIO::Job *job, const KIO::UDSEntryList& list); // TODO KDE5: use KIO::ListJob* argument to avoid casting
00940 
00948         void redirection( KIO::Job *job, const KUrl &url );
00949 
00957         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00958 
00959     protected Q_SLOTS:
00960         virtual void slotFinished( );
00961         virtual void slotMetaData( const KIO::MetaData &_metaData);
00962         virtual void slotResult( KJob *job );
00963 
00964     protected:
00965         ListJob(ListJobPrivate &dd);
00966 
00967     private:
00968         Q_PRIVATE_SLOT(d_func(), void slotListEntries( const KIO::UDSEntryList& list ))
00969         Q_PRIVATE_SLOT(d_func(), void slotRedirection( const KUrl &url ))
00970         Q_PRIVATE_SLOT(d_func(), void gotEntries( KIO::Job * subjob, const KIO::UDSEntryList& list ))
00971         Q_DECLARE_PRIVATE(ListJob)
00972     };
00973 
00974     class SpecialJobPrivate;
00986     class KIO_EXPORT SpecialJob : public TransferJob
00987     {
00988         Q_OBJECT
00989     public:
00996         explicit SpecialJob(const KUrl &url, const QByteArray &data = QByteArray());
00997 
01002         void setArguments(const QByteArray &data);
01003 
01008         QByteArray arguments() const;
01009 
01010     public:
01011         ~SpecialJob();
01012 
01013     private:
01014         Q_DECLARE_PRIVATE(SpecialJob)
01015     };
01016 }
01017 
01018 #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
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  •     Sodep
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.5.9-20090814
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