• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • @topname@
  • Sitemap
  • Contact Us
 

kio/kio

dataslave.h

00001 // -*- c++ -*-
00002 /*
00003  *  This file is part of the KDE libraries
00004  *  Copyright (c) 2003 Leo Savernik <l.savernik@aon.at>
00005  *  Derived from slave.h
00006  *
00007  *  This library is free software; you can redistribute it and/or
00008  *  modify it under the terms of the GNU Library General Public
00009  *  License version 2 as published by the Free Software Foundation.
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_DATASLAVE_H__
00023 #define __KIO_DATASLAVE_H__
00024 
00025 #include <kio/global.h>
00026 #include <kio/slave.h>
00027 
00028 class QTimer;
00029 
00030 // don't forget to sync DISPATCH_IMPL in dataslave.h
00031 #define DISPATCH_DECL(type) \
00032     void dispatch_##type();
00033 
00034 // don't forget to sync DISPATCH_IMPL1 in dataslave.h
00035 #define DISPATCH_DECL1(type, paramtype, param) \
00036     void dispatch_##type(paramtype param);
00037 
00038 namespace KIO {
00039 
00049     class DataSlave : public KIO::Slave {
00050     Q_OBJECT
00051     public:
00052     DataSlave();
00053 
00054         virtual ~DataSlave();
00055 
00056         virtual void setHost(const QString &host, int port,
00057             const QString &user, const QString &passwd);
00058     virtual void setConfig(const MetaData &config);
00059 
00060         virtual void suspend();
00061         virtual void resume();
00062         virtual bool suspended();
00063         virtual void send(int cmd, const QByteArray &data = QByteArray());
00064 
00065     virtual void hold(const KURL &url);
00066 
00067     // pure virtual methods that are defined by the actual protocol
00068     virtual void get(const KURL &url) = 0;
00069     virtual void mimetype(const KURL &url) = 0;
00070 
00071     protected:
00076     void setAllMetaData(const MetaData &);
00081     void sendMetaData();
00082 
00083     // queueing methods
00085     enum QueueType { Queue_mimeType = 1, Queue_totalSize,
00086         Queue_sendMetaData, Queue_data, Queue_finished };
00090     struct QueueStruct {
00091       QueueType type;
00092       QString s;
00093       KIO::filesize_t size;
00094       QByteArray ba;
00095 
00096       QueueStruct() {}
00097       QueueStruct(QueueType type) : type(type) {}
00098     };
00099         typedef QValueList<QueueStruct> DispatchQueue;
00100     DispatchQueue dispatchQueue;
00101 
00102     DISPATCH_DECL1(mimeType, const QString &, s)
00103     DISPATCH_DECL1(totalSize, KIO::filesize_t, size)
00104     DISPATCH_DECL(sendMetaData)
00105     DISPATCH_DECL1(data, const QByteArray &, ba)
00106     DISPATCH_DECL(finished)
00107 
00108     protected slots:
00112     void dispatchNext();
00113     protected:
00114     virtual void virtual_hook( int id, void* data );
00115     private:
00116     MetaData meta_data;
00117     bool _suspended;
00118     QTimer *timer;
00119     };
00120 
00121 }
00122 
00123 #undef DISPATCH_DECL
00124 #undef DISPATCH_DECL1
00125 
00126 #endif /*__KIO_DATASLAVE_H__*/

kio/kio

Skip menu "kio/kio"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

@topname@

Skip menu "@topname@"
  •     kdnssd-avahi
  • arts
  • dcop
  • dnssd
  • interfaces
  •     interface
  •     library
  •   kspeech
  •   ktexteditor
  • kabc
  • kate
  • kcmshell
  • kdecore
  • kded
  • kdefx
  • kdeprint
  • kdesu
  • kdeui
  • kdoctools
  • khtml
  • kimgio
  • kinit
  • kio
  •   bookmarks
  •   httpfilter
  •   kfile
  •   kio
  •   kioexec
  •   kpasswdserver
  •   kssl
  • kioslave
  •   http
  • kjs
  • kmdi
  •   kmdi
  • knewstuff
  • kparts
  • kresources
  • kspell2
  • kunittest
  • kutils
  • kwallet
  • libkmid
  • libkscreensaver
Generated for @topname@ by doxygen 1.5.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