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

KIO

slavebase.h

Go to the documentation of this file.
00001 /*
00002    Copyright (C) 2000 David Faure <faure@kde.org>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License as published by the Free Software Foundation; either
00007    version 2 of the License, or (at your option) any later version.
00008 
00009    This library is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY; without even the implied warranty of
00011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012    Library General Public License for more details.
00013 
00014    You should have received a copy of the GNU Library General Public License
00015    along with this library; see the file COPYING.LIB.  If not, write to
00016    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017    Boston, MA 02110-1301, USA.
00018 */
00019 
00020 #ifndef SLAVEBASE_H
00021 #define SLAVEBASE_H
00022 
00023 #include <kio/global.h>
00024 #include <kio/udsentry.h>
00025 #include <kio/authinfo.h>
00026 #include <kio/jobclasses.h> // for KIO::JobFlags
00027 #include <klocale.h>
00028 
00029 #include <QtCore/QByteArray>
00030 #include <QtNetwork/QHostInfo>
00031 
00032 class KConfigGroup;
00033 class KRemoteEncoding;
00034 class KUrl;
00035 
00036 namespace KIO {
00037 
00038 class Connection;
00039 class SlaveBasePrivate;
00040 
00050 class KIO_EXPORT SlaveBase
00051 {
00052 public:
00053     SlaveBase( const QByteArray &protocol, const QByteArray &pool_socket, const QByteArray &app_socket);
00054     virtual ~SlaveBase();
00055 
00060     void exit();
00061 
00065     void dispatchLoop();
00066 
00068     // Message Signals to send to the job
00070 
00079     void data( const QByteArray &data );
00080 
00085     void dataReq( );
00086 
00091     void opened();
00092 
00121     void error( int _errid, const QString &_text );
00122 
00126     void connected();
00127 
00133     void finished();
00134 
00138     void needSubUrlData();
00139 
00146     void slaveStatus(const QString &host, bool connected);
00147 
00154     void statEntry( const UDSEntry& _entry );
00155 
00161     void listEntries( const UDSEntryList& _entry );
00162 
00170     bool canResume( KIO::filesize_t offset );
00171 
00176     void canResume();
00177 
00179     // Info Signals to send to the job
00181 
00187     void totalSize( KIO::filesize_t _bytes );
00193     void processedSize( KIO::filesize_t _bytes );
00194 
00195     void position( KIO::filesize_t _pos );
00196 
00197     void written( KIO::filesize_t _bytes );
00198 
00210     void processedPercent( float percent );
00211 
00217     void speed( unsigned long _bytes_per_second );
00218 
00223     void redirection( const KUrl &_url );
00224 
00230     void errorPage();
00231 
00236     void mimeType( const QString &_type );
00237 
00241     void warning( const QString &msg );
00242 
00247     void infoMessage( const QString &msg );
00248 
00249     enum MessageBoxType { QuestionYesNo = 1, WarningYesNo = 2, WarningContinueCancel = 3, WarningYesNoCancel = 4, Information = 5, SSLMessageBox = 6 };
00250 
00264     int messageBox( MessageBoxType type, const QString &text,
00265                     const QString &caption = QString(),
00266                     const QString &buttonYes = i18n("&Yes"),
00267                     const QString &buttonNo = i18n("&No"));
00268 
00284     int messageBox( const QString &text, MessageBoxType type,
00285                     const QString &caption = QString(),
00286                     const QString &buttonYes = i18n("&Yes"),
00287                     const QString &buttonNo = i18n("&No"),
00288                     const QString &dontAskAgainName = QString() );
00289 
00294     void setMetaData(const QString &key, const QString &value);
00295 
00300     bool hasMetaData(const QString &key) const;
00301 
00305     QString metaData(const QString &key) const;
00306 
00307 
00312     MetaData allMetaData() const;
00313 
00321     KConfigGroup* config();
00322 
00327     KRemoteEncoding* remoteEncoding();
00328 
00329 
00331     // Commands sent by the job, the slave has to
00332     // override what it wants to implement
00334 
00346     virtual void setHost(const QString& host, quint16 port, const QString& user, const QString& pass);
00347 
00351     virtual void setSubUrl(const KUrl&url);
00352 
00362     virtual void openConnection();
00363 
00372     virtual void closeConnection();
00373 
00380     virtual void get( const KUrl& url );
00381 
00388     virtual void open( const KUrl &url, QIODevice::OpenMode mode );
00389 
00390     virtual void read( KIO::filesize_t size );
00391     virtual void write( const QByteArray &data );
00392     virtual void seek( KIO::filesize_t offset );
00393     virtual void close();
00394 
00410     virtual void put( const KUrl& url, int permissions, JobFlags flags );
00411 
00427     virtual void stat( const KUrl& url );
00428 
00441     virtual void mimetype( const KUrl& url );
00442 
00450     virtual void listDir( const KUrl& url );
00451 
00459     virtual void mkdir( const KUrl&url, int permissions );
00460 
00475     virtual void rename( const KUrl& src, const KUrl& dest, JobFlags flags );
00476 
00484     virtual void symlink( const QString& target, const KUrl& dest, JobFlags flags );
00485 
00490     virtual void chmod( const KUrl& url, int permissions );
00491 
00496     virtual void chown( const KUrl& url, const QString& owner, const QString& group );
00497 
00505     virtual void setModificationTime( const KUrl& url, const QDateTime& mtime );
00506 
00518     virtual void copy( const KUrl &src, const KUrl &dest, int permissions, JobFlags flags );
00519 
00526     virtual void del( const KUrl &url, bool isfile);
00527 
00528     // TODO KDE4: use setLinkDest for kio_file but also kio_remote (#97129)
00529     // For kio_file it's the same as del+symlink, but for kio_remote it allows
00530     // to keep the icon etc.
00531 
00537     virtual void setLinkDest( const KUrl& url, const QString& target );
00538 
00547     virtual void special( const QByteArray & data );
00548 
00556     virtual void multiGet( const QByteArray & data );
00557 
00562     virtual void slave_status();
00563 
00568     virtual void reparseConfiguration();
00569 
00570 
00574     int connectTimeout();
00575 
00579     int proxyConnectTimeout();
00580 
00585     int responseTimeout();
00586 
00591     int readTimeout();
00592 
00606     void setTimeoutSpecialCommand(int timeout, const QByteArray &data=QByteArray());
00607 
00609     // Dispatching (internal)
00611 
00615     virtual void dispatch( int command, const QByteArray &data );
00616 
00620     virtual void dispatchOpenCommand( int command, const QByteArray &data );
00621 
00630     int readData( QByteArray &buffer );
00631 
00643     void listEntry( const UDSEntry& _entry, bool ready);
00644 
00649     void connectSlave(const QString& path);
00650     void disconnectSlave();
00651 
00700     bool openPasswordDialog( KIO::AuthInfo& info, const QString &errorMsg = QString() );
00701 
00729     bool checkCachedAuthentication( AuthInfo& info );
00730 
00737     bool cacheAuthentication( const AuthInfo& info );
00738 
00757     bool requestNetwork(const QString& host = QString());
00758 
00772     void dropNetwork(const QString& host = QString());
00773 
00778     int waitForAnswer( int expected1, int expected2, QByteArray & data, int * pCmd = 0 );
00779 
00792     void sendMetaData();
00793 
00800     void sendAndKeepMetaData();
00801 
00807     bool wasKilled() const;
00808 
00812     void setKillFlag();
00813 
00817     void lookupHost(const QString& host);
00818 
00822     int waitForHostInfo(QHostInfo& info);
00823 
00824 protected:
00828     QByteArray mProtocol;
00829     //Often used by TcpSlaveBase and unlikely to change
00830     MetaData mOutgoingMetaData;
00831     MetaData mIncomingMetaData;
00832 
00833     virtual void virtual_hook( int id, void* data );
00834 
00835 private:
00836     void send(int cmd, const QByteArray& arr = QByteArray());
00837     SlaveBasePrivate* const d;
00838     friend class SlaveBasePrivate;
00839 };
00840 
00841 }
00842 
00843 #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