//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

%ModuleHeaderCode
#include <slaveinterface.h>
%End

namespace KIO
{

enum Info
{
    INF_TOTAL_SIZE,
    INF_PROCESSED_SIZE,
    INF_SPEED,
    INF_REDIRECTION,
    INF_MIME_TYPE,
    INF_ERROR_PAGE,
    INF_WARNING,
    INF_GETTING_FILE,
    INF_UNUSED,
    INF_INFOMESSAGE,
    INF_META_DATA,
    INF_NETWORK_STATUS,
    INF_MESSAGEBOX,
    INF_POSITION
};


enum Message
{
    MSG_DATA,
    MSG_DATA_REQ,
    MSG_ERROR,
    MSG_CONNECTED,
    MSG_FINISHED,
    MSG_STAT_ENTRY,
    MSG_LIST_ENTRIES,
    MSG_RENAMED,
    MSG_RESUME,
    MSG_SLAVE_STATUS,
    MSG_SLAVE_ACK,
    MSG_NET_REQUEST,
    MSG_NET_DROP,
    MSG_NEED_SUBURL_DATA,
    MSG_CANRESUME,
    MSG_AUTH_KEY,
    MSG_DEL_AUTH_KEY,
    MSG_OPENED,
    MSG_WRITTEN,
    MSG_HOST_INFO_REQ
};


class SlaveInterface : QObject
{
%TypeHeaderCode
#include <slaveinterface.h>
%End


protected:
//ig                            SlaveInterface (SlaveInterfacePrivate& dd, QObject* parent /TransferThis/ = 0);

public:
    KIO::Connection*        connection () const;
    void                    sendResumeAnswer (bool resume);
    void                    setOffset (KIO::filesize_t offset);
    KIO::filesize_t         offset () const;

signals:
    void                    data (const QByteArray&);
    void                    dataReq ();
    void                    error (int, const QString&);
    void                    connected ();
    void                    finished ();
    void                    slaveStatus (pid_t, const QByteArray&, const QString&, bool);
    void                    listEntries (const KIO::UDSEntryList&);
    void                    statEntry (const KIO::UDSEntry&);
    void                    needSubUrlData ();
    void                    canResume (KIO::filesize_t);
    void                    open ();
    void                    written (KIO::filesize_t);
    void                    metaData (const KIO::MetaData&);
    void                    totalSize (KIO::filesize_t);
    void                    processedSize (KIO::filesize_t);
    void                    redirection (const KUrl&);
    void                    position (KIO::filesize_t);
    void                    speed (unsigned long);
    void                    errorPage ();
    void                    mimeType (const QString&);
    void                    warning (const QString&);
    void                    infoMessage (const QString&);

protected:
    virtual bool            dispatch ();
    virtual bool            dispatch (int _cmd, const QByteArray& data);
    void                    messageBox (int type, const QString& text, const QString& caption, const QString& buttonYes, const QString& buttonNo);
    void                    messageBox (int type, const QString& text, const QString& caption, const QString& buttonYes, const QString& buttonNo, const QString& dontAskAgainName);
    void                    requestNetwork (const QString&, const QString&);
    void                    dropNetwork (const QString&, const QString&);
    void                    calcSpeed ();


private:
//force
                            SlaveInterface ();

//end
public:
    ~SlaveInterface ();
    void                    setConnection (KIO::Connection* connection);
};
// SlaveInterface

};
// KIO



%ModuleHeaderCode
#include <slaveinterface.h>
%End

