//
//     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 <jobclasses.h>
%End

namespace KIO
{

enum JobFlag
{
    DefaultFlags,
    HideProgressInfo,
    Resume,
    Overwrite
};

typedef QFlags<KIO::JobFlag> JobFlags;


class Job : KCompositeJob
{
%TypeHeaderCode
#include <jobclasses.h>
%End


protected:
                            Job ();
//ig                        Job (JobPrivate& dd);

public:
    void                    start ();
    KIO::JobUiDelegate*     ui () const;

protected:
    virtual bool            doKill ();
    virtual bool            doSuspend ();
    virtual bool            doResume ();

public:
    QString                 errorString () const;
    QStringList             detailedErrorStrings (const KUrl* reqUrl = 0, int method = -1) const;
    void                    showErrorDialog (QWidget* parent /Transfer/ = 0);
    bool                    isInteractive () const;
    void                    setParentJob (KIO::Job* parentJob);
    KIO::Job*               parentJob () const;
    void                    setMetaData (const KIO::MetaData& metaData);
    void                    addMetaData (const QString& key, const QString& value);
    void                    addMetaData (const QMap<QString,QString>& values);
    void                    mergeMetaData (const QMap<QString,QString>& values);
    KIO::MetaData           outgoingMetaData () const;
    KIO::MetaData           metaData () const;
    QString                 queryMetaData (const QString& key);

signals:
    void                    canceled (KJob* job);
    void                    connected (KIO::Job* job);

protected:
    virtual bool            addSubjob (KJob* job);
    virtual bool            removeSubjob (KJob* job);
};   // Job


class SimpleJob : KIO::Job
{
%TypeHeaderCode
#include <jobclasses.h>
%End


protected:
    virtual bool            doSuspend ();
    virtual bool            doResume ();
    virtual bool            doKill ();

public:
    const KUrl&             url () const;
    virtual void            putOnHold ();
    static void             removeOnHold ();
    void                    slotError (int, const QString&);

protected:
    virtual void            slotFinished ();
    virtual void            slotWarning (const QString&);
    virtual void            slotMetaData (const KIO::MetaData& _metaData);
    void                    storeSSLSessionFromJob (const KUrl& m_redirectionURL);
//ig                        SimpleJob (SimpleJobPrivate& dd);

//force

private:
                            SimpleJob ();
//end

};   // SimpleJob


class StatJob : KIO::SimpleJob
{
%TypeHeaderCode
#include <jobclasses.h>
%End


public:

    enum StatSide
    {
        SourceSide,
        DestinationSide
    };

    void                    setSide (KIO::StatJob::StatSide side);
    void                    setSide (bool source /Constrained/);
    void                    setDetails (short details);
    const KIO::UDSEntry&    statResult () const;

signals:
    void                    redirection (KIO::Job* job, const KUrl& url);
    void                    permanentRedirection (KIO::Job* job, const KUrl& fromUrl, const KUrl& toUrl);

protected:
    virtual void            slotFinished ();
    virtual void            slotMetaData (const KIO::MetaData& _metaData);
//ig                        StatJob (StatJobPrivate& dd);

//force

private:
                            StatJob ();
//end

};   // StatJob


class TransferJob : KIO::SimpleJob
{
%TypeHeaderCode
#include <jobclasses.h>
%End


public:
    void                    setModificationTime (const QDateTime& mtime);
    bool                    isErrorPage () const;
    void                    setAsyncDataEnabled (bool enabled);
    void                    sendAsyncData (const QByteArray& data);
    void                    setReportDataSent (bool enabled);
    bool                    reportDataSent () const;
    QString                 mimetype () const;
    void                    setTotalSize (KIO::filesize_t bytes);

protected:
    virtual void            slotResult (KJob* job);
    virtual bool            doResume ();

signals:
    void                    data (KIO::Job* job, const QByteArray& data);
    void                    dataReq (KIO::Job* job, QByteArray& data);
    void                    redirection (KIO::Job* job, const KUrl& url);
    void                    permanentRedirection (KIO::Job* job, const KUrl& fromUrl, const KUrl& toUrl);
    void                    mimetype (KIO::Job* job, const QString& type);
    void                    canResume (KIO::Job* job, KIO::filesize_t offset);

protected:
    virtual void            slotRedirection (const KUrl& url);
    virtual void            slotFinished ();
    virtual void            slotData (const QByteArray& data);
    virtual void            slotDataReq ();
    virtual void            slotMimetype (const QString& mimetype);
    virtual void            slotMetaData (const KIO::MetaData& _metaData);
//ig                        TransferJob (TransferJobPrivate& dd);

//force

private:
                            TransferJob ();
//end

};   // TransferJob


class StoredTransferJob : KIO::TransferJob
{
%TypeHeaderCode
#include <jobclasses.h>
%End


public:
    void                    setData (const QByteArray& arr);
    QByteArray              data () const;

protected:
//ig                        StoredTransferJob (StoredTransferJobPrivate& dd);

//force

private:
                            StoredTransferJob ();
//end

};   // StoredTransferJob


class MultiGetJob : KIO::TransferJob
{
%TypeHeaderCode
#include <jobclasses.h>
%End


public:
    void                    get (long id, const KUrl& url, const KIO::MetaData& metaData);

signals:
    void                    data (long id, const QByteArray& data);
    void                    mimetype (long id, const QString& type);
    void                    result (long id);

protected:
    virtual void            slotRedirection (const KUrl& url);
    virtual void            slotFinished ();
    virtual void            slotData (const QByteArray& data);
    virtual void            slotMimetype (const QString& mimetype);
//ig                        MultiGetJob (MultiGetJobPrivate& dd);

//force

private:
                            MultiGetJob ();
//end

};   // MultiGetJob


class MimetypeJob : KIO::TransferJob
{
%TypeHeaderCode
#include <jobclasses.h>
%End


protected:
    virtual void            slotFinished ();
//ig                        MimetypeJob (MimetypeJobPrivate& dd);

//force

private:
                            MimetypeJob ();
//end

};   // MimetypeJob


class FileCopyJob : KIO::Job
{
%TypeHeaderCode
#include <jobclasses.h>
%End


public:
    void                    setSourceSize (KIO::filesize_t size);
    void                    setModificationTime (const QDateTime& mtime);
    KUrl                    srcUrl () const;
    KUrl                    destUrl () const;
    bool                    doSuspend ();
    bool                    doResume ();

signals:
    void                    mimetype (KIO::Job* job, const QString& type);

protected:
    virtual void            slotResult (KJob* job);
//ig                        FileCopyJob (FileCopyJobPrivate& dd);

//force

private:
                            FileCopyJob ();
//end

};   // FileCopyJob


class ListJob : KIO::SimpleJob
{
%TypeHeaderCode
#include <jobclasses.h>
%End


public:
    const KUrl&             redirectionUrl () const;
    void                    setUnrestricted (bool unrestricted);

signals:
    void                    entries (KIO::Job* job, const KIO::UDSEntryList& list);
    void                    redirection (KIO::Job* job, const KUrl& url);
    void                    permanentRedirection (KIO::Job* job, const KUrl& fromUrl, const KUrl& toUrl);

protected:
    virtual void            slotFinished ();
    virtual void            slotMetaData (const KIO::MetaData& _metaData);
    virtual void            slotResult (KJob* job);
//ig                        ListJob (ListJobPrivate& dd);

//force

private:
                            ListJob ();
//end

};   // ListJob


class SpecialJob : KIO::TransferJob
{
%TypeHeaderCode
#include <jobclasses.h>
%End


public:
    explicit                SpecialJob (const KUrl& url, const QByteArray& data = QByteArray());
    void                    setArguments (const QByteArray& data);
    QByteArray              arguments () const;

//force

private:
                            SpecialJob ();
//end

};   // SpecialJob

};   // KIO



%ModuleHeaderCode
#include <jobclasses.h>
%End

