• Skip to content
  • Skip to link menu
KDE 4.1 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 
00031 class KConfigGroup;
00032 class KRemoteEncoding;
00033 class KUrl;
00034 
00035 namespace KIO {
00036 
00037 class Connection;
00038 class SlaveBasePrivate;
00039 
00049 class KIO_EXPORT SlaveBase
00050 {
00051 public:
00052     SlaveBase( const QByteArray &protocol, const QByteArray &pool_socket, const QByteArray &app_socket);
00053     virtual ~SlaveBase();
00054 
00059     void exit();
00060 
00064     void dispatchLoop();
00065 
00067     // Message Signals to send to the job
00069 
00078     void data( const QByteArray &data );
00079 
00084     void dataReq( );
00085 
00090     void opened();
00091 
00110     void error( int _errid, const QString &_text );
00111 
00115     void connected();
00116 
00122     void finished();
00123 
00127     void needSubUrlData();
00128 
00135     void slaveStatus(const QString &host, bool connected);
00136 
00143     void statEntry( const UDSEntry& _entry );
00144 
00150     void listEntries( const UDSEntryList& _entry );
00151 
00159     bool canResume( KIO::filesize_t offset );
00160 
00165     void canResume();
00166 
00168     // Info Signals to send to the job
00170 
00176     void totalSize( KIO::filesize_t _bytes );
00182     void processedSize( KIO::filesize_t _bytes );
00183 
00184     void position( KIO::filesize_t _pos );
00185 
00186     void written( KIO::filesize_t _bytes );
00187 
00199     void processedPercent( float percent );
00200 
00206     void speed( unsigned long _bytes_per_second );
00207 
00212     void redirection( const KUrl &_url );
00213 
00219     void errorPage();
00220 
00225     void mimeType( const QString &_type );
00226 
00230     void warning( const QString &msg );
00231 
00236     void infoMessage( const QString &msg );
00237 
00238     enum MessageBoxType { QuestionYesNo = 1, WarningYesNo = 2, WarningContinueCancel = 3, WarningYesNoCancel = 4, Information = 5, SSLMessageBox = 6 };
00239 
00253     int messageBox( MessageBoxType type, const QString &text,
00254                     const QString &caption = QString(),
00255                     const QString &buttonYes = i18n("&Yes"),
00256                     const QString &buttonNo = i18n("&No"));
00257 
00273     int messageBox( const QString &text, MessageBoxType type,
00274                     const QString &caption = QString(),
00275                     const QString &buttonYes = i18n("&Yes"),
00276                     const QString &buttonNo = i18n("&No"),
00277                     const QString &dontAskAgainName = QString() );
00278 
00283     void setMetaData(const QString &key, const QString &value);
00284 
00289     bool hasMetaData(const QString &key) const;
00290 
00294     QString metaData(const QString &key) const;
00295 
00296 
00301     MetaData allMetaData() const;
00302 
00310     KConfigGroup* config();
00311 
00316     KRemoteEncoding* remoteEncoding();
00317 
00318 
00320     // Commands sent by the job, the slave has to
00321     // override what it wants to implement
00323 
00335     virtual void setHost(const QString& host, quint16 port, const QString& user, const QString& pass);
00336 
00340     virtual void setSubUrl(const KUrl&url);
00341 
00351     virtual void openConnection();
00352 
00361     virtual void closeConnection();
00362 
00369     virtual void get( const KUrl& url );
00370 
00377     virtual void open( const KUrl &url, QIODevice::OpenMode mode );
00378 
00379     virtual void read( KIO::filesize_t size );
00380     virtual void write( const QByteArray &data );
00381     virtual void seek( KIO::filesize_t offset );
00382     virtual void close();
00383 
00399     virtual void put( const KUrl& url, int permissions, JobFlags flags );
00400 
00406     virtual void stat( const KUrl& url );
00407 
00420     virtual void mimetype( const KUrl& url );
00421 
00429     virtual void listDir( const KUrl& url );
00430 
00438     virtual void mkdir( const KUrl&url, int permissions );
00439 
00454     virtual void rename( const KUrl& src, const KUrl& dest, JobFlags flags );
00455 
00463     virtual void symlink( const QString& target, const KUrl& dest, JobFlags flags );
00464 
00469     virtual void chmod( const KUrl& url, int permissions );
00470 
00475     virtual void chown( const KUrl& url, const QString& owner, const QString& group );
00476 
00484     virtual void setModificationTime( const KUrl& url, const QDateTime& mtime );
00485 
00497     virtual void copy( const KUrl &src, const KUrl &dest, int permissions, JobFlags flags );
00498 
00505     virtual void del( const KUrl &url, bool isfile);
00506 
00507     // TODO KDE4: use setLinkDest for kio_file but also kio_remote (#97129)
00508     // For kio_file it's the same as del+symlink, but for kio_remote it allows
00509     // to keep the icon etc.
00510 
00516     virtual void setLinkDest( const KUrl& url, const QString& target );
00517 
00526     virtual void special( const QByteArray & data );
00527 
00535     virtual void multiGet( const QByteArray & data );
00536 
00541     virtual void slave_status();
00542 
00547     virtual void reparseConfiguration();
00548 
00549 
00553     int connectTimeout();
00554 
00558     int proxyConnectTimeout();
00559 
00564     int responseTimeout();
00565 
00570     int readTimeout();
00571 
00585     void setTimeoutSpecialCommand(int timeout, const QByteArray &data=QByteArray());
00586 
00588     // Dispatching (internal)
00590 
00594     virtual void dispatch( int command, const QByteArray &data );
00595 
00599     virtual void dispatchOpenCommand( int command, const QByteArray &data );
00600 
00609     int readData( QByteArray &buffer );
00610 
00622     void listEntry( const UDSEntry& _entry, bool ready);
00623 
00628     void connectSlave(const QString& path);
00629     void disconnectSlave();
00630 
00679     bool openPasswordDialog( KIO::AuthInfo& info, const QString &errorMsg = QString() );
00680 
00708     bool checkCachedAuthentication( AuthInfo& info );
00709 
00716     bool cacheAuthentication( const AuthInfo& info );
00717 
00736     bool requestNetwork(const QString& host = QString());
00737 
00751     void dropNetwork(const QString& host = QString());
00752 
00757     int waitForAnswer( int expected1, int expected2, QByteArray & data, int * pCmd = 0 );
00758 
00771     void sendMetaData();
00772 
00779     void sendAndKeepMetaData();
00780 
00786     bool wasKilled() const;
00787 
00791     void setKillFlag();
00792 
00793 protected:
00797     QByteArray mProtocol;
00798     //Often used by TcpSlaveBase and unlikely to change
00799     MetaData mOutgoingMetaData;
00800     MetaData mIncomingMetaData;
00801 
00802     virtual void virtual_hook( int id, void* data );
00803 
00804 private:
00805     void send(int cmd, const QByteArray& arr = QByteArray());
00806     SlaveBasePrivate* const d;
00807     friend class SlaveBasePrivate;
00808 };
00809 
00810 }
00811 
00812 #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
  • Kross
  • KUtils
  • Nepomuk
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.5.4
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