#ifndef JOBCLASSES_H_
#define JOBCLASSES_H_
#include "KWQMap.h"
#include "KWQObject.h"
#include "KWQString.h"
#include "KWQKURL.h"
#ifdef __OBJC__
@class KWQResourceLoader;
@class NSData;
@class NSURLResponse;
#else
class KWQResourceLoader;
class NSData;
class NSURLResponse;
#endif
namespace khtml {
class FormData;
}
namespace KIO {
class TransferJobPrivate;
class Job : public QObject {
public:
virtual int error() const = 0;
virtual QString errorText() const = 0;
virtual void kill() = 0;
};
class TransferJob : public Job {
public:
TransferJob(const KURL &, bool reload, bool deliverAllData=false);
TransferJob(const KURL &, const khtml::FormData &postData, bool deliverAllData=false);
~TransferJob();
int error() const;
void setError(int);
QString errorText() const;
bool isErrorPage() const;
QString queryMetaData(const QString &key) const;
void addMetaData(const QString &key, const QString &value);
void addMetaData(const QMap<QString, QString> &value);
void kill();
void setLoader(KWQResourceLoader *);
KURL url() const;
void emitData(const char *, int);
void emitRedirection(const KURL &);
void emitResult(NSData *allData=nil);
void emitReceivedResponse(NSURLResponse *);
khtml::FormData postData() const;
QString method() const;
private:
void assembleResponseHeaders() const;
void retrieveCharset() const;
TransferJobPrivate *d;
bool m_deliverAllData;
KWQSignal m_data;
KWQSignal m_redirection;
KWQSignal m_result;
KWQSignal m_receivedResponse;
};
}
#endif