• Skip to content
  • Skip to link menu
KDE 4.6 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>
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 #ifndef KDE_NO_DEPRECATED
00179         KDE_DEPRECATED void showErrorDialog( QWidget *parent = 0 );
00180 #endif
00181 
00189         bool isInteractive() const;
00190 
00200         void setParentJob( Job* parentJob );
00201 
00207         Job* parentJob() const;
00208 
00216         void setMetaData( const KIO::MetaData &metaData);
00217 
00225         void addMetaData(const QString &key, const QString &value);
00226 
00234         void addMetaData(const QMap<QString,QString> &values);
00235 
00243         void mergeMetaData(const QMap<QString,QString> &values);
00244 
00248         MetaData outgoingMetaData() const;
00249 
00255         MetaData metaData() const;
00256 
00264         QString queryMetaData(const QString &key);
00265 
00266     protected:
00267 
00268     Q_SIGNALS:
00276         void canceled( KJob *job );
00277 
00284         void connected( KIO::Job *job );
00285 
00286     protected:
00294         virtual bool addSubjob( KJob *job );
00295 
00303         virtual bool removeSubjob( KJob *job );
00304 
00305     private:
00312         Q_PRIVATE_SLOT(d_func(), void slotSpeed( KJob *job, unsigned long speed ))
00313         Q_DECLARE_PRIVATE(Job)
00314     };
00315 
00316     class SimpleJobPrivate;
00323     class KIO_EXPORT SimpleJob : public KIO::Job {
00324     Q_OBJECT
00325 
00326     public:
00327         ~SimpleJob();
00328 
00329     protected:
00334         virtual bool doSuspend();
00335 
00340         virtual bool doResume();
00341 
00346         virtual bool doKill();
00347 
00348     public:
00353         const KUrl& url() const;
00354 
00359         virtual void putOnHold();
00360 
00364         static void removeOnHold();
00365 
00371         bool isRedirectionHandlingEnabled() const;
00372 
00381         void setRedirectionHandlingEnabled(bool handle);
00382 
00383     public Q_SLOTS:
00389         void slotError( int , const QString & );
00390 
00391     protected Q_SLOTS:
00396         virtual void slotFinished( );
00397 
00402         virtual void slotWarning( const QString & );
00403 
00409         virtual void slotMetaData( const KIO::MetaData &_metaData);
00410 
00411     protected:
00412         /*
00413          * Allow jobs that inherit SimpleJob and are aware
00414          * of redirections to store the SSL session used.
00415          * Retrieval is handled by SimpleJob::start
00416          * @param m_redirectionURL Reference to redirection URL,
00417          * used instead of m_url if not empty
00418          */
00419         void storeSSLSessionFromJob(const KUrl &m_redirectionURL);
00420 
00425         SimpleJob(SimpleJobPrivate &dd);
00426     private:
00427         Q_PRIVATE_SLOT(d_func(), void slotConnected())
00428         Q_PRIVATE_SLOT(d_func(), void slotProcessedSize( KIO::filesize_t data_size ))
00429         Q_PRIVATE_SLOT(d_func(), void slotSpeed( unsigned long speed ))
00430         Q_PRIVATE_SLOT(d_func(), void slotTotalSize( KIO::filesize_t data_size ))
00431         Q_PRIVATE_SLOT(d_func(), void _k_slotSlaveInfoMessage(const QString&))
00432 
00433         Q_DECLARE_PRIVATE(SimpleJob)
00434     };
00435 
00436     class StatJobPrivate;
00441     class KIO_EXPORT StatJob : public SimpleJob {
00442 
00443     Q_OBJECT
00444 
00445     public:
00446         enum StatSide {
00447             SourceSide,
00448             DestinationSide
00449         };
00450 
00451         ~StatJob();
00452 
00460         void setSide(StatSide side);
00461 
00469 #ifndef KDE_NO_DEPRECATED
00470         KDE_DEPRECATED void setSide( bool source );
00471 #endif
00472 
00482         void setDetails( short int details );
00483 
00490         const UDSEntry & statResult() const;
00491 
00515         KUrl mostLocalUrl() const;
00516 
00517     Q_SIGNALS:
00525         void redirection( KIO::Job *job, const KUrl &url );
00526 
00534         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00535 
00536     protected Q_SLOTS:
00537         virtual void slotFinished();
00538         virtual void slotMetaData( const KIO::MetaData &_metaData);
00539     protected:
00540         StatJob(StatJobPrivate &dd);
00541 
00542     private:
00543         Q_PRIVATE_SLOT(d_func(), void slotStatEntry( const KIO::UDSEntry & entry ))
00544         Q_PRIVATE_SLOT(d_func(), void slotRedirection( const KUrl &url))
00545         Q_DECLARE_PRIVATE(StatJob)
00546     };
00547 
00548     class FileCopyJobPrivate;
00549     class TransferJobPrivate;
00556     class KIO_EXPORT TransferJob : public SimpleJob {
00557     Q_OBJECT
00558 
00559     public:
00560         ~TransferJob();
00561 
00566         void setModificationTime( const QDateTime& mtime );
00567 
00575         bool isErrorPage() const;
00576 
00583         void setAsyncDataEnabled(bool enabled);
00584 
00590         void sendAsyncData(const QByteArray &data);
00591 
00600 #ifndef KDE_NO_DEPRECATED
00601         KDE_DEPRECATED void setReportDataSent(bool enabled);
00602 #endif
00603 
00611 #ifndef KDE_NO_DEPRECATED
00612         KDE_DEPRECATED bool reportDataSent() const;
00613 #endif
00614 
00620         QString mimetype() const;
00621 
00627         void setTotalSize(KIO::filesize_t bytes);
00628 
00629     protected:
00634         virtual void slotResult( KJob *job );
00635 
00639         virtual bool doResume();
00640 
00641     Q_SIGNALS:
00651         void data( KIO::Job *job, const QByteArray &data );
00652 
00664         void dataReq( KIO::Job *job, QByteArray &data );
00665 
00673         void redirection( KIO::Job *job, const KUrl &url );
00674 
00682         void permanentRedirection( KIO::Job *job, const KUrl &fromUrl, const KUrl &toUrl );
00683 
00689         void mimetype( KIO::Job *job, const QString &type );
00690 
00698         void canResume( KIO::Job *job, KIO::filesize_t offset );
00699 
00700 
00701     protected Q_SLOTS:
00702         virtual void slotRedirection( const KUrl &url);
00703         virtual void slotFinished();
00704         virtual void slotData( const QByteArray &data);
00705         virtual void slotDataReq();
00706         virtual void slotMimetype( const QString &mimetype );
00707         virtual void slotMetaData( const KIO::MetaData &_metaData);
00708 
00709     protected:
00710         TransferJob(TransferJobPrivate &dd);
00711     private:
00712         Q_PRIVATE_SLOT(d_func(), void slotErrorPage())
00713         Q_PRIVATE_SLOT(d_func(), void slotCanResume( KIO::filesize_t offset ))
00714         Q_PRIVATE_SLOT(d_func(), void slotPostRedirection())
00715         Q_PRIVATE_SLOT(d_func(), void slotNeedSubUrlData())
00716         Q_PRIVATE_SLOT(d_func(), void slotSubUrlData(KIO::Job*, const QByteArray &))
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
  • 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
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.7.3
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