1
/****************************************************************************
3
** Copyright (C) Qxt Foundation. Some rights reserved.
5
** This file is part of the QxtWeb module of the Qxt library.
7
** This library is free software; you can redistribute it and/or modify it
8
** under the terms of the Common Public License, version 1.0, as published
9
** by IBM, and/or under the terms of the GNU Lesser General Public License,
10
** version 2.1, as published by the Free Software Foundation.
12
** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY
13
** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
14
** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR
15
** FITNESS FOR A PARTICULAR PURPOSE.
17
** You should have received a copy of the CPL and the LGPL along with this
18
** file. See the LICENSE file and the cpl1.0.txt/lgpl-2.1.txt files
19
** included with the source distribution for more information.
20
** If you did not receive a copy of the licenses, contact the Qxt Foundation.
22
** <http://libqxt.org> <foundation@libqxt.org>
24
****************************************************************************/
26
#ifndef QXTWEBCONTENT_H
27
#define QXTWEBCONTENT_H
29
#include <QAbstractSocket>
32
#include <qxtglobal.h>
34
class QxtWebContentPrivate;
35
class QXT_WEB_EXPORT QxtWebContent : public QIODevice
39
QxtWebContent(int contentLength, const QByteArray& start, QIODevice* device);
40
QxtWebContent(int contentLength, QIODevice* device);
41
explicit QxtWebContent(const QByteArray& content, QObject* parent = 0);
42
static QHash<QString, QString> parseUrlEncodedQuery(const QString& data);
44
virtual qint64 bytesAvailable() const;
45
qint64 unreadBytes() const;
47
void waitForAllContent();
50
void ignoreRemainingContent();
53
virtual qint64 readData(char* data, qint64 maxSize);
54
virtual qint64 writeData(const char* data, qint64 maxSize);
57
void errorReceived(QAbstractSocket::SocketError);
60
QXT_DECLARE_PRIVATE(QxtWebContent)
63
#endif // QXTWEBCONTENT_H