#include "KWQCString.h"
#include "KWQSignal.h"
#if __OBJC__
@class NSDictionary;
@class NSString;
@class NSURLResponse;
#else
class NSDictionary;
class NSString;
class NSURLResponse;
#endif
namespace khtml {
class CachedObject;
class DocLoader;
class Loader;
class Request;
}
namespace KIO {
class TransferJob;
}
namespace DOM {
class DOMString;
}
bool KWQServeRequest(khtml::Loader *, khtml::Request *, KIO::TransferJob *);
bool KWQServeRequest(khtml::Loader *, khtml::DocLoader *, KIO::TransferJob *);
QByteArray KWQServeSynchronousRequest(khtml::Loader *, khtml::DocLoader *, KIO::TransferJob *, KURL &finalURL, QString &headers);
void KWQCheckCacheObjectStatus(khtml::DocLoader *, khtml::CachedObject *);
bool KWQCheckIfReloading(khtml::DocLoader *loader);
bool KWQIsResponseURLEqualToURL(NSURLResponse *response, const DOM::DOMString &m_url);
QString KWQResponseURL(NSURLResponse *response);
NSString *KWQResponseMIMEType(NSURLResponse *response);
bool KWQResponseIsMultipart(NSURLResponse *response);
int KWQNumberOfPendingOrLoadingRequests(khtml::DocLoader *dl);
time_t KWQCacheObjectExpiresTime(khtml::DocLoader *docLoader, NSURLResponse *response);
NSString *KWQHeaderStringFromDictionary(NSDictionary *headers, int statusCode);
class KWQLoader
{
public:
KWQLoader(khtml::Loader *);
KWQSignal _requestStarted;
KWQSignal _requestDone;
KWQSignal _requestFailed;
};