// This is the SIP interface definition for QHttp, QHttpHeader, // QHttpRequestHeader and QHttpResponseHeader. // // Copyright (c) 2007 // Riverbank Computing Limited // // This file is part of PyQt. // // This copy of PyQt is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2, or (at your option) any later // version. // // PyQt is supplied 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 // PyQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %ExportedDoc QHttp (Qt v3+) Q_LONG readBlock char *data Q_ULONG maxlen This takes a single maxlen parameter. The data is returned if there was no error, otherwise None is returned. QHttpHeader (Qt v3.1+) QHttpHeader is fully implemented. QHttpRequestHeader (Qt v3.1+) QHttpRequestHeader is fully implemented. QHttpResponseHeader (Qt v3.1+) QHttpResponseHeader is fully implemented. %End %If (Qt_NETWORKPROTOCOL_HTTP) %If (Qt_3_1_0 -) class QHttpHeader { %TypeHeaderCode #include %End public: QHttpHeader(); QHttpHeader(const QHttpHeader &); QHttpHeader(const QString &); virtual ~QHttpHeader(); QString value(const QString &) const; void setValue(const QString &,const QString &); void removeValue(const QString &); QStringList keys() const; bool hasKey(const QString &) const; bool hasContentLength() const; uint contentLength() const; void setContentLength(int); bool hasContentType() const; QString contentType() const; void setContentType(const QString &); virtual QString toString() const; bool isValid() const; virtual int majorVersion() const = 0; virtual int minorVersion() const = 0; protected: virtual bool parseLine(const QString &,int); bool parse(const QString &); void setValid(bool); }; class QHttpResponseHeader : QHttpHeader { %TypeHeaderCode #include %End public: QHttpResponseHeader(); QHttpResponseHeader(const QHttpResponseHeader &); int statusCode() const; QString reasonPhrase() const; int majorVersion() const; int minorVersion() const; QString toString() const; protected: bool parseLine(const QString &,int); }; class QHttpRequestHeader : QHttpHeader { %TypeHeaderCode #include %End public: QHttpRequestHeader(); QHttpRequestHeader(const QString &,const QString &,int = 1,int = 1); QHttpRequestHeader(const QHttpRequestHeader &); QHttpRequestHeader(const QString &); void setRequest(const QString &,const QString &,int = 1,int = 1); QString method() const; QString path() const; int majorVersion() const; int minorVersion() const; QString toString() const; protected: bool parseLine(const QString &,int); }; %End %If (Qt_3_0_0 -) class QHttp : QNetworkProtocol { %TypeHeaderCode #include %End public: QHttp(); %If (Qt_3_1_0 -) QHttp(QObject * /TransferThis/,const char * = 0); QHttp(const QString &,Q_UINT16 = 80,QObject * /TransferThis/ = 0, const char * = 0); virtual ~QHttp(); %End int supportedOperations() const; %If (Qt_3_1_0 -) enum State { Unconnected, HostLookup, Connecting, Sending, Reading, Connected, Closing }; enum Error { NoError, UnknownError, HostNotFound, ConnectionRefused, UnexpectedClose, InvalidResponseHeader, WrongContentLength, Aborted }; int setHost(const QString &,Q_UINT16 = 80); int get(const QString &,QIODevice * = 0) /ReleaseGIL/; int post(const QString &,QIODevice *,QIODevice * = 0) /ReleaseGIL/; int post(const QString &,const QByteArray &, QIODevice * = 0) /ReleaseGIL/; int head(const QString &) /ReleaseGIL/; int request(const QHttpRequestHeader &,QIODevice * = 0, QIODevice * = 0) /ReleaseGIL/; int request(const QHttpRequestHeader &,const QByteArray &, QIODevice * = 0) /ReleaseGIL/; int closeConnection(); unsigned long bytesAvailable() const; SIP_PYOBJECT readBlock(Q_ULONG) /ReleaseGIL/ [Q_LONG (char *,Q_ULONG)]; %MethodCode char *buf; if ((buf = (char *)sipMalloc(a0)) == NULL) sipIsErr = 1; else { Q_LONG actlen; Py_BEGIN_ALLOW_THREADS actlen = sipCpp -> QHttp::readBlock(buf,a0); Py_END_ALLOW_THREADS if (actlen < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else if ((sipRes = PyString_FromStringAndSize(buf,actlen)) == NULL) sipIsErr = 1; sipFree((ANY *)buf); } %End QByteArray readAll() /ReleaseGIL/; int currentId() const; QIODevice *currentSourceDevice() const; QIODevice *currentDestinationDevice() const; QHttpRequestHeader currentRequest() const; bool hasPendingRequests() const; void clearPendingRequests(); State state() const; Error error() const; QString errorString() const; %End public slots: %If (Qt_3_1_0 -) void abort(); %End signals: %If (Qt_3_1_0 -) void stateChanged(int); void responseHeaderReceived(const QHttpResponseHeader &); void readyRead(const QHttpResponseHeader &); void dataSendProgress(int,int); void dataReadProgress(int,int); void requestStarted(int); void requestFinished(int,bool); void done(bool); %End protected: void operationGet(QNetworkOperation *); void operationPut(QNetworkOperation *); %If (Qt_3_1_0 -) void timerEvent(QTimerEvent *); %End }; %End %End