• Skip to content
  • Skip to link menu
KDE 4.7 API Reference
  • KDE API Reference
  • kdelibs
  • KDE Home
  • 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> // KDE5: remove
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 namespace KIO {
00036 
00042     enum JobFlag {
00046       DefaultFlags = 0,
00047 
00051       HideProgressInfo = 1,
00052 
00060       Resume = 2,
00061 
00067       Overwrite = 4
00068     };
00069     Q_DECLARE_FLAGS(JobFlags, JobFlag)
00070     Q_DECLARE_OPERATORS_FOR_FLAGS(JobFlags)
00071 
00072     class JobUiDelegate;
00073 
00074     class JobPrivate;
00094     class KIO_EXPORT Job : public KCompositeJob {
00095         Q_OBJECT
00096 
00097     protected:
00098         Job();
00099         Job(JobPrivate &dd);
00100 
00101     public:
00102         virtual ~Job();
00103         void start() {} // Since KIO autostarts its jobs
00104 
00112         JobUiDelegate *ui() const;
00113 
00114     protected:
00120         virtual bool doKill();
00121 
00126         virtual bool doSuspend();
00127 
00132         virtual bool doResume();
00133 
00134     public:
00152         QString errorString() const;
00153 
00164         QStringList detailedErrorStrings(const KUrl *reqUrl = 0L,
00165                                          int method = -1) const;
00166 
00177 #ifndef KDE_NO_DEPRECATED
00178         KDE_DEPRECATED void showErrorDialog( QWidget *parent = 0 );
00179 #endif
00180 
00188         bool isInteractive() const;
00189 
00199         void setParentJob( Job* parentJob );
00200 
00206         Job* parentJob() const;
00207 
00215         void setMetaData( const KIO::MetaData &metaData);
00216 
00224         void addMetaData(const QString &key, const QString &value);
00225 
00233         void addMetaData(const QMap<QString,QString> &values);
00234 
00242         void mergeMetaData(const QMap<QString,QString> &values);
00243 
00247         MetaData outgoingMetaData() const;
00248 
00254         MetaData metaData() const;
00255 
00263         QString queryMetaData(const QString &key);
00264 
00265     protected:
00266 
00267     Q_SIGNALS:
00275         void canceled( KJob *job );
00276 
00283         void connected( KIO::Job *job );
00284 
00285     protected:
00293         virtual bool addSubjob( KJob *job );
00294 
00302         virtual bool removeSubjob( KJob *job );
00303 
00304     private:
00311         Q_PRIVATE_SLOT(d_func(), void slotSpeed( KJob *job, unsigned long speed ))
00312         Q_DECLARE_PRIVATE(Job)
00313     };
00314 
00315     class SimpleJobPrivate;
00322     class KIO_EXPORT SimpleJob : public KIO::Job {
00323     Q_OBJECT
00324 
00325     public:
00326         ~SimpleJob();
00327 
00328     protected:
00333         virtual bool doSuspend();
00334 
00339         virtual bool doResume();
00340 
00345         virtual bool doKill();
00346 
00347     public:
00352         const KUrl& url() const;
00353 
00358         virtual void putOnHold();
00359 
00363         static void removeOnHold();
00364 
00370         bool isRedirectionHandlingEnabled() const;
00371 
00380         void setRedirectionHandlingEnabled(bool handle);
00381 
00382     public Q_SLOTS:
00388         void slotError( int , const QString & );
00389 
00390     protected Q_SLOTS:
00395         virtual void slotFinished( );
00396 
00401         virtual void slotWarning( const QString & );
00402 
00408         virtual void slotMetaData( const KIO::MetaData &_metaData);
00409 
00410     protected:
00411         /*
00412          * Allow jobs that inherit SimpleJob and are aware
00413          * of redirections to store the SSL session used.
00414          * Retrieval is handled by SimpleJob::start
00415          * @param m_redirectionURL Reference to redirection URL,
00416          * used instead of m_url if not empty
00417          */
00418         void storeSSLSessionFromJob(const KUrl &m_redirectionURL);
00419 
00424         SimpleJob(SimpleJobPrivate &dd);
00425     private:
00426         Q_PRIVATE_SLOT(d_func(), void slotConnected())
00427         Q_PRIVATE_SLOT(d_func(), void slotProcessedSize( KIO::filesize_t data_size ))
00428         Q_PRIVATE_SLOT(d_func(), void slotSpeed( unsigned long speed ))
00429         Q_PRIVATE_SLOT(d_func(), void slotTotalSize( KIO::filesize_t data_size ))
00430         Q_PRIVATE_SLOT(d_func(), void _k_slotSlaveInfoMessage(const QString&))
00431 
00432         Q_DECLARE_PRIVATE(SimpleJob)
00433     };
00434 
00435     class StatJobPrivate;
00440     class KIO_EXPORT StatJob : public SimpleJob {
00441 
00442     Q_OBJECT
00443 
00444     public:
00445         enum StatSide {
00446             SourceSide,
00447             DestinationSide
00448         };
00449 
00450         ~StatJob();
00451 
00459         void setSide(StatSide side);
00460 
00468 #ifndef KDE_NO_DEPRECATED
00469         KDE_DEPRECATED void setSide( bool source );
00470 #endif
00471 
00481         void setDetails( short int details );
00482 
00489         const UDSEntry & statResult() const;
00490 
00514         KUrl mostLocalUrl() const;
00515 
00516     Q_SIGNALS:
00524         void redirection( KIO::Job *job, const KUrl &url );
00525 
00533         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00534 
00535     protected Q_SLOTS:
00536         virtual void slotFinished();
00537         virtual void slotMetaData( const KIO::MetaData &_metaData);
00538     protected:
00539         StatJob(StatJobPrivate &dd);
00540 
00541     private:
00542         Q_PRIVATE_SLOT(d_func(), void slotStatEntry( const KIO::UDSEntry & entry ))
00543         Q_PRIVATE_SLOT(d_func(), void slotRedirection( const KUrl &url))
00544         Q_DECLARE_PRIVATE(StatJob)
00545     };
00546 
00547     class FileCopyJobPrivate;
00548     class TransferJobPrivate;
00555     class KIO_EXPORT TransferJob : public SimpleJob {
00556     Q_OBJECT
00557 
00558     public:
00559         ~TransferJob();
00560 
00565         void setModificationTime( const QDateTime& mtime );
00566 
00574         bool isErrorPage() const;
00575 
00582         void setAsyncDataEnabled(bool enabled);
00583 
00589         void sendAsyncData(const QByteArray &data);
00590 
00599 #ifndef KDE_NO_DEPRECATED
00600         KDE_DEPRECATED void setReportDataSent(bool enabled);
00601 #endif
00602 
00610 #ifndef KDE_NO_DEPRECATED
00611         KDE_DEPRECATED bool reportDataSent() const;
00612 #endif
00613 
00619         QString mimetype() const;
00620 
00626         void setTotalSize(KIO::filesize_t bytes);
00627 
00628     protected:
00633         virtual void slotResult( KJob *job );
00634 
00638         virtual bool doResume();
00639 
00640     Q_SIGNALS:
00650         void data( KIO::Job *job, const QByteArray &data );
00651 
00663         void dataReq( KIO::Job *job, QByteArray &data );
00664 
00672         void redirection( KIO::Job *job, const KUrl &url );
00673 
00681         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00682 
00688         void mimetype( KIO::Job *job, const QString &type );
00689 
00697         void canResume( KIO::Job *job, KIO::filesize_t offset );
00698 
00699 
00700     protected Q_SLOTS:
00701         virtual void slotRedirection( const KUrl &url);
00702         virtual void slotFinished();
00703         virtual void slotData( const QByteArray &data);
00704         virtual void slotDataReq();
00705         virtual void slotMimetype( const QString &mimetype );
00706         virtual void slotMetaData( const KIO::MetaData &_metaData);
00707 
00708     protected:
00709         TransferJob(TransferJobPrivate &dd);
00710     private:
00711         Q_PRIVATE_SLOT(d_func(), void slotErrorPage())
00712         Q_PRIVATE_SLOT(d_func(), void slotCanResume( KIO::filesize_t offset ))
00713         Q_PRIVATE_SLOT(d_func(), void slotPostRedirection())
00714         Q_PRIVATE_SLOT(d_func(), void slotNeedSubUrlData())
00715         Q_PRIVATE_SLOT(d_func(), void slotSubUrlData(KIO::Job*, const QByteArray &))
00716         Q_PRIVATE_SLOT(d_func(), void slotDataReqFromDevice())
00717         Q_DECLARE_PRIVATE(TransferJob)
00718 
00719         // A FileCopyJob may control one or more TransferJobs
00720         friend class FileCopyJob;
00721         friend class FileCopyJobPrivate;
00722     };
00723 
00724     class StoredTransferJobPrivate;
00743     class KIO_EXPORT StoredTransferJob : public KIO::TransferJob {
00744         Q_OBJECT
00745 
00746     public:
00747         ~StoredTransferJob();
00748 
00754         void setData( const QByteArray& arr );
00755 
00760         QByteArray data() const;
00761 
00762     protected:
00763         StoredTransferJob(StoredTransferJobPrivate &dd);
00764     private:
00765         Q_PRIVATE_SLOT(d_func(), void slotStoredData( KIO::Job *job, const QByteArray &data ))
00766         Q_PRIVATE_SLOT(d_func(), void slotStoredDataReq( KIO::Job *job, QByteArray &data ))
00767 
00768         Q_DECLARE_PRIVATE(StoredTransferJob)
00769     };
00770 
00771     class MultiGetJobPrivate;
00778     class KIO_EXPORT MultiGetJob : public TransferJob {
00779     Q_OBJECT
00780 
00781     public:
00782         virtual ~MultiGetJob();
00783 
00791         void get(long id, const KUrl &url, const MetaData &metaData);
00792 
00793     Q_SIGNALS:
00800         void data( long id, const QByteArray &data);
00801 
00807         void mimetype( long id, const QString &type );
00808 
00816         void result( long id);
00817 
00818     protected Q_SLOTS:
00819         virtual void slotRedirection( const KUrl &url);
00820         virtual void slotFinished();
00821         virtual void slotData( const QByteArray &data);
00822         virtual void slotMimetype( const QString &mimetype );
00823 
00824     protected:
00825         MultiGetJob(MultiGetJobPrivate &dd);
00826     private:
00827         Q_DECLARE_PRIVATE(MultiGetJob)
00828     };
00829 
00830     class MimetypeJobPrivate;
00837     class KIO_EXPORT MimetypeJob : public TransferJob {
00838     Q_OBJECT
00839 
00840     public:
00841         ~MimetypeJob();
00842 
00843     protected Q_SLOTS:
00844         virtual void slotFinished( );
00845     protected:
00846         MimetypeJob(MimetypeJobPrivate &dd);
00847     private:
00848         Q_DECLARE_PRIVATE(MimetypeJob)
00849     };
00850 
00856     class KIO_EXPORT FileCopyJob : public Job {
00857     Q_OBJECT
00858 
00859     public:
00860         ~FileCopyJob();
00866         void setSourceSize(KIO::filesize_t size);
00867 
00875         void setModificationTime( const QDateTime& mtime );
00876 
00881         KUrl srcUrl() const;
00882 
00887         KUrl destUrl() const;
00888 
00889         bool doSuspend();
00890         bool doResume();
00891 
00892     Q_SIGNALS:
00903         void mimetype( KIO::Job *job, const QString &type );
00904 
00905     protected Q_SLOTS:
00910         virtual void slotResult( KJob *job );
00911 
00912     protected:
00913         FileCopyJob(FileCopyJobPrivate &dd);
00914 
00915     private:
00916         Q_PRIVATE_SLOT(d_func(), void slotStart())
00917         Q_PRIVATE_SLOT(d_func(), void slotData( KIO::Job *, const QByteArray &data))
00918         Q_PRIVATE_SLOT(d_func(), void slotDataReq( KIO::Job *, QByteArray &data))
00919         Q_PRIVATE_SLOT(d_func(), void slotMimetype( KIO::Job*, const QString& type ))
00920         Q_PRIVATE_SLOT(d_func(), void slotProcessedSize( KJob *job, qulonglong size ))
00921         Q_PRIVATE_SLOT(d_func(), void slotTotalSize( KJob *job, qulonglong size ))
00922         Q_PRIVATE_SLOT(d_func(), void slotPercent( KJob *job, unsigned long pct ))
00923         Q_PRIVATE_SLOT(d_func(), void slotCanResume( KIO::Job *job, KIO::filesize_t offset ))
00924 
00925         Q_DECLARE_PRIVATE(FileCopyJob)
00926     };
00927 
00928     class ListJobPrivate;
00936     class KIO_EXPORT ListJob : public SimpleJob {
00937     Q_OBJECT
00938 
00939     public:
00940         ~ListJob();
00941 
00947         const KUrl& redirectionUrl() const;
00948 
00952         void setUnrestricted(bool unrestricted);
00953 
00954     Q_SIGNALS:
00964         void entries( KIO::Job *job, const KIO::UDSEntryList& list); // TODO KDE5: use KIO::ListJob* argument to avoid casting
00965 
00973         void redirection( KIO::Job *job, const KUrl &url );
00974 
00982         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00983 
00984     protected Q_SLOTS:
00985         virtual void slotFinished( );
00986         virtual void slotMetaData( const KIO::MetaData &_metaData);
00987         virtual void slotResult( KJob *job );
00988 
00989     protected:
00990         ListJob(ListJobPrivate &dd);
00991 
00992     private:
00993         Q_PRIVATE_SLOT(d_func(), void slotListEntries( const KIO::UDSEntryList& list ))
00994         Q_PRIVATE_SLOT(d_func(), void slotRedirection( const KUrl &url ))
00995         Q_PRIVATE_SLOT(d_func(), void gotEntries( KIO::Job * subjob, const KIO::UDSEntryList& list ))
00996         Q_DECLARE_PRIVATE(ListJob)
00997     };
00998 
00999     class SpecialJobPrivate;
01011     class KIO_EXPORT SpecialJob : public TransferJob
01012     {
01013         Q_OBJECT
01014     public:
01021         explicit SpecialJob(const KUrl &url, const QByteArray &data = QByteArray());
01022 
01027         void setArguments(const QByteArray &data);
01028 
01033         QByteArray arguments() const;
01034 
01035     public:
01036         ~SpecialJob();
01037 
01038     private:
01039         Q_DECLARE_PRIVATE(SpecialJob)
01040     };
01041 }
01042 
01043 #endif

KIO

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

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • 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
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.7.5
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