kio
forwardingslavebase.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _FORWARDING_SLAVE_BASE_H_
00021 #define _FORWARDING_SLAVE_BASE_H_
00022
00023 #include <kio/slavebase.h>
00024 #include <kio/jobclasses.h>
00025
00026 #include <qobject.h>
00027
00028 namespace KIO
00029 {
00030
00031 class ForwardingSlaveBasePrivate;
00032
00088 class KIO_EXPORT ForwardingSlaveBase : public QObject, public SlaveBase
00089 {
00090 Q_OBJECT
00091 public:
00092 ForwardingSlaveBase(const QCString &protocol,
00093 const QCString &poolSocket,
00094 const QCString &appSocket);
00095 virtual ~ForwardingSlaveBase();
00096
00097 virtual void get(const KURL &url);
00098
00099 virtual void put(const KURL &url, int permissions,
00100 bool overwrite, bool resume);
00101
00102 virtual void stat(const KURL &url);
00103
00104 virtual void mimetype(const KURL &url);
00105
00106 virtual void listDir(const KURL &url);
00107
00108 virtual void mkdir(const KURL &url, int permissions);
00109
00110 virtual void rename(const KURL &src, const KURL &dest, bool overwrite);
00111
00112 virtual void symlink(const QString &target, const KURL &dest,
00113 bool overwrite);
00114
00115 virtual void chmod(const KURL &url, int permissions);
00116
00117 virtual void copy(const KURL &src, const KURL &dest,
00118 int permissions, bool overwrite);
00119
00120 virtual void del(const KURL &url, bool isfile);
00121
00122 protected:
00135 virtual bool rewriteURL(const KURL &url, KURL &newURL)=0;
00136
00147 virtual void prepareUDSEntry(KIO::UDSEntry &entry,
00148 bool listing=false) const;
00149
00154 KURL processedURL() const { return m_processedURL; }
00155
00160 KURL requestedURL() const { return m_requestedURL; }
00161
00162 private:
00163 KURL m_processedURL;
00164 KURL m_requestedURL;
00165 ForwardingSlaveBasePrivate *d;
00166
00167 bool internalRewriteURL(const KURL &url, KURL &newURL);
00168
00169 void connectJob(Job *job);
00170 void connectSimpleJob(SimpleJob *job);
00171 void connectListJob(ListJob *job);
00172 void connectTransferJob(TransferJob *job);
00173
00174 private slots:
00175
00176 void slotResult(KIO::Job *job);
00177 void slotWarning(KIO::Job *job, const QString &msg);
00178 void slotInfoMessage(KIO::Job *job, const QString &msg);
00179 void slotTotalSize(KIO::Job *job, KIO::filesize_t size);
00180 void slotProcessedSize(KIO::Job *job, KIO::filesize_t size);
00181 void slotSpeed(KIO::Job *job, unsigned long bytesPerSecond);
00182
00183
00184 void slotRedirection(KIO::Job *job, const KURL &url);
00185
00186
00187 void slotEntries(KIO::Job *job, const KIO::UDSEntryList &entries);
00188
00189
00190 void slotData(KIO::Job *job, const QByteArray &data);
00191 void slotDataReq(KIO::Job *job, QByteArray &data);
00192 void slotMimetype (KIO::Job *job, const QString &type);
00193 void slotCanResume (KIO::Job *job, KIO::filesize_t offset);
00194 };
00195
00196 }
00197
00198 #endif