You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
280 lines
5.9 KiB
280 lines
5.9 KiB
13 years ago
|
// This is the SIP interface definition for QHttp, QHttpHeader,
|
||
|
// QHttpRequestHeader and QHttpResponseHeader.
|
||
|
//
|
||
|
// Copyright (c) 2007
|
||
|
// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
|
||
|
//
|
||
|
// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||
|
|
||
|
|
||
|
%ExportedDoc
|
||
|
<Sect2><Title>QHttp (Qt v3+)</Title>
|
||
|
<FuncSynopsis>
|
||
|
<FuncDef>Q_LONG <Function>readBlock</Function></FuncDef>
|
||
|
<ParamDef>char *<Parameter>data</Parameter></ParamDef>
|
||
|
<ParamDef>Q_ULONG <Parameter>maxlen</Parameter></ParamDef>
|
||
|
</FuncSynopsis>
|
||
|
<Para>
|
||
|
This takes a single <Literal>maxlen</Literal> parameter. The
|
||
|
<Literal>data</Literal> is returned if there was no error, otherwise
|
||
|
<Literal>None</Literal> is returned.
|
||
|
</Para>
|
||
|
</Sect2>
|
||
|
|
||
|
<Sect2><Title>QHttpHeader (Qt v3.1+)</Title>
|
||
|
<Para>
|
||
|
<Literal>QHttpHeader</Literal> is fully implemented.
|
||
|
</Para>
|
||
|
</Sect2>
|
||
|
|
||
|
<Sect2><Title>QHttpRequestHeader (Qt v3.1+)</Title>
|
||
|
<Para>
|
||
|
<Literal>QHttpRequestHeader</Literal> is fully implemented.
|
||
|
</Para>
|
||
|
</Sect2>
|
||
|
|
||
|
<Sect2><Title>QHttpResponseHeader (Qt v3.1+)</Title>
|
||
|
<Para>
|
||
|
<Literal>QHttpResponseHeader</Literal> is fully implemented.
|
||
|
</Para>
|
||
|
</Sect2>
|
||
|
%End
|
||
|
|
||
|
|
||
|
%If (Qt_NETWORKPROTOCOL_HTTP)
|
||
|
%If (Qt_3_1_0 -)
|
||
|
|
||
|
class QHttpHeader
|
||
|
{
|
||
|
%TypeHeaderCode
|
||
|
#include <qhttp.h>
|
||
|
%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 <qhttp.h>
|
||
|
%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 <qhttp.h>
|
||
|
%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 <qhttp.h>
|
||
|
%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
|