QNetworkReply: move "State" enum declaration into QNetworkReplyPrivate
Change-Id: If63a029a7a7ef84fc1b4b73f5bab495992ea7e02 Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
This commit is contained in:
parent
5042145dd9
commit
8db7e47699
@ -65,6 +65,16 @@ QT_BEGIN_NAMESPACE
|
|||||||
class QNetworkReplyPrivate: public QIODevicePrivate, public QNetworkHeadersPrivate
|
class QNetworkReplyPrivate: public QIODevicePrivate, public QNetworkHeadersPrivate
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
enum State {
|
||||||
|
Idle, // The reply is idle.
|
||||||
|
Buffering, // The reply is buffering outgoing data.
|
||||||
|
Working, // The reply is uploading/downloading data.
|
||||||
|
Finished, // The reply has finished.
|
||||||
|
Aborted, // The reply has been aborted.
|
||||||
|
WaitingForSession, // The reply is waiting for the session to open before connecting.
|
||||||
|
Reconnecting // The reply will reconnect to once roaming has completed.
|
||||||
|
};
|
||||||
|
|
||||||
QNetworkReplyPrivate();
|
QNetworkReplyPrivate();
|
||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
QUrl url;
|
QUrl url;
|
||||||
|
@ -250,8 +250,8 @@ void QNetworkReplyHttpImpl::close()
|
|||||||
{
|
{
|
||||||
Q_D(QNetworkReplyHttpImpl);
|
Q_D(QNetworkReplyHttpImpl);
|
||||||
|
|
||||||
if (d->state == QNetworkReplyHttpImplPrivate::Aborted ||
|
if (d->state == QNetworkReplyPrivate::Aborted ||
|
||||||
d->state == QNetworkReplyHttpImplPrivate::Finished)
|
d->state == QNetworkReplyPrivate::Finished)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// According to the documentation close only stops the download
|
// According to the documentation close only stops the download
|
||||||
@ -268,23 +268,23 @@ void QNetworkReplyHttpImpl::abort()
|
|||||||
{
|
{
|
||||||
Q_D(QNetworkReplyHttpImpl);
|
Q_D(QNetworkReplyHttpImpl);
|
||||||
// FIXME
|
// FIXME
|
||||||
if (d->state == QNetworkReplyHttpImplPrivate::Finished || d->state == QNetworkReplyHttpImplPrivate::Aborted)
|
if (d->state == QNetworkReplyPrivate::Finished || d->state == QNetworkReplyPrivate::Aborted)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QNetworkReply::close();
|
QNetworkReply::close();
|
||||||
|
|
||||||
if (d->state != QNetworkReplyHttpImplPrivate::Finished) {
|
if (d->state != QNetworkReplyPrivate::Finished) {
|
||||||
// call finished which will emit signals
|
// call finished which will emit signals
|
||||||
// FIXME shouldn't this be emitted Queued?
|
// FIXME shouldn't this be emitted Queued?
|
||||||
d->error(OperationCanceledError, tr("Operation canceled"));
|
d->error(OperationCanceledError, tr("Operation canceled"));
|
||||||
|
|
||||||
// If state is WaitingForSession, calling finished has no effect
|
// If state is WaitingForSession, calling finished has no effect
|
||||||
if (d->state == QNetworkReplyHttpImplPrivate::WaitingForSession)
|
if (d->state == QNetworkReplyPrivate::WaitingForSession)
|
||||||
d->state = QNetworkReplyHttpImplPrivate::Working;
|
d->state = QNetworkReplyPrivate::Working;
|
||||||
d->finished();
|
d->finished();
|
||||||
}
|
}
|
||||||
|
|
||||||
d->state = QNetworkReplyHttpImplPrivate::Aborted;
|
d->state = QNetworkReplyPrivate::Aborted;
|
||||||
|
|
||||||
emit abortHttpRequest();
|
emit abortHttpRequest();
|
||||||
}
|
}
|
||||||
@ -1800,13 +1800,13 @@ void QNetworkReplyHttpImplPrivate::_q_networkSessionConnected()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case QNetworkReplyImplPrivate::Buffering:
|
case QNetworkReplyPrivate::Buffering:
|
||||||
case QNetworkReplyImplPrivate::Working:
|
case QNetworkReplyPrivate::Working:
|
||||||
case QNetworkReplyImplPrivate::Reconnecting:
|
case QNetworkReplyPrivate::Reconnecting:
|
||||||
// Migrate existing downloads to new network connection.
|
// Migrate existing downloads to new network connection.
|
||||||
migrateBackend();
|
migrateBackend();
|
||||||
break;
|
break;
|
||||||
case QNetworkReplyImplPrivate::WaitingForSession:
|
case QNetworkReplyPrivate::WaitingForSession:
|
||||||
// Start waiting requests.
|
// Start waiting requests.
|
||||||
QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection);
|
QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection);
|
||||||
break;
|
break;
|
||||||
|
@ -160,16 +160,6 @@ public:
|
|||||||
|
|
||||||
static QHttpNetworkRequest::Priority convert(const QNetworkRequest::Priority& prio);
|
static QHttpNetworkRequest::Priority convert(const QNetworkRequest::Priority& prio);
|
||||||
|
|
||||||
enum State {
|
|
||||||
Idle, // The reply is idle.
|
|
||||||
Buffering, // The reply is buffering outgoing data.
|
|
||||||
Working, // The reply is uploading/downloading data.
|
|
||||||
Finished, // The reply has finished.
|
|
||||||
Aborted, // The reply has been aborted.
|
|
||||||
WaitingForSession, // The reply is waiting for the session to open before connecting.
|
|
||||||
Reconnecting // The reply will reconnect to once roaming has completed.
|
|
||||||
};
|
|
||||||
|
|
||||||
QNetworkReplyHttpImplPrivate();
|
QNetworkReplyHttpImplPrivate();
|
||||||
~QNetworkReplyHttpImplPrivate();
|
~QNetworkReplyHttpImplPrivate();
|
||||||
|
|
||||||
|
@ -301,13 +301,13 @@ void QNetworkReplyImplPrivate::_q_networkSessionConnected()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case QNetworkReplyImplPrivate::Buffering:
|
case QNetworkReplyPrivate::Buffering:
|
||||||
case QNetworkReplyImplPrivate::Working:
|
case QNetworkReplyPrivate::Working:
|
||||||
case QNetworkReplyImplPrivate::Reconnecting:
|
case QNetworkReplyPrivate::Reconnecting:
|
||||||
// Migrate existing downloads to new network connection.
|
// Migrate existing downloads to new network connection.
|
||||||
migrateBackend();
|
migrateBackend();
|
||||||
break;
|
break;
|
||||||
case QNetworkReplyImplPrivate::WaitingForSession:
|
case QNetworkReplyPrivate::WaitingForSession:
|
||||||
// Start waiting requests.
|
// Start waiting requests.
|
||||||
QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection);
|
QMetaObject::invokeMethod(q, "_q_startOperation", Qt::QueuedConnection);
|
||||||
break;
|
break;
|
||||||
@ -916,7 +916,7 @@ QNetworkReplyImpl::~QNetworkReplyImpl()
|
|||||||
void QNetworkReplyImpl::abort()
|
void QNetworkReplyImpl::abort()
|
||||||
{
|
{
|
||||||
Q_D(QNetworkReplyImpl);
|
Q_D(QNetworkReplyImpl);
|
||||||
if (d->state == QNetworkReplyImplPrivate::Finished || d->state == QNetworkReplyImplPrivate::Aborted)
|
if (d->state == QNetworkReplyPrivate::Finished || d->state == QNetworkReplyPrivate::Aborted)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// stop both upload and download
|
// stop both upload and download
|
||||||
@ -927,14 +927,14 @@ void QNetworkReplyImpl::abort()
|
|||||||
|
|
||||||
QNetworkReply::close();
|
QNetworkReply::close();
|
||||||
|
|
||||||
if (d->state != QNetworkReplyImplPrivate::Finished) {
|
if (d->state != QNetworkReplyPrivate::Finished) {
|
||||||
// call finished which will emit signals
|
// call finished which will emit signals
|
||||||
d->error(OperationCanceledError, tr("Operation canceled"));
|
d->error(OperationCanceledError, tr("Operation canceled"));
|
||||||
if (d->state == QNetworkReplyImplPrivate::WaitingForSession)
|
if (d->state == QNetworkReplyPrivate::WaitingForSession)
|
||||||
d->state = QNetworkReplyImplPrivate::Working;
|
d->state = QNetworkReplyPrivate::Working;
|
||||||
d->finished();
|
d->finished();
|
||||||
}
|
}
|
||||||
d->state = QNetworkReplyImplPrivate::Aborted;
|
d->state = QNetworkReplyPrivate::Aborted;
|
||||||
|
|
||||||
// finished may access the backend
|
// finished may access the backend
|
||||||
if (d->backend) {
|
if (d->backend) {
|
||||||
@ -946,8 +946,8 @@ void QNetworkReplyImpl::abort()
|
|||||||
void QNetworkReplyImpl::close()
|
void QNetworkReplyImpl::close()
|
||||||
{
|
{
|
||||||
Q_D(QNetworkReplyImpl);
|
Q_D(QNetworkReplyImpl);
|
||||||
if (d->state == QNetworkReplyImplPrivate::Aborted ||
|
if (d->state == QNetworkReplyPrivate::Aborted ||
|
||||||
d->state == QNetworkReplyImplPrivate::Finished)
|
d->state == QNetworkReplyPrivate::Finished)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// stop the download
|
// stop the download
|
||||||
@ -1041,7 +1041,7 @@ qint64 QNetworkReplyImpl::readData(char *data, qint64 maxlen)
|
|||||||
if (d->downloadBuffer) {
|
if (d->downloadBuffer) {
|
||||||
qint64 maxAvail = qMin<qint64>(d->downloadBufferCurrentSize - d->downloadBufferReadPosition, maxlen);
|
qint64 maxAvail = qMin<qint64>(d->downloadBufferCurrentSize - d->downloadBufferReadPosition, maxlen);
|
||||||
if (maxAvail == 0)
|
if (maxAvail == 0)
|
||||||
return d->state == QNetworkReplyImplPrivate::Finished ? -1 : 0;
|
return d->state == QNetworkReplyPrivate::Finished ? -1 : 0;
|
||||||
// FIXME what about "Aborted" state?
|
// FIXME what about "Aborted" state?
|
||||||
memcpy(data, d->downloadBuffer + d->downloadBufferReadPosition, maxAvail);
|
memcpy(data, d->downloadBuffer + d->downloadBufferReadPosition, maxAvail);
|
||||||
d->downloadBufferReadPosition += maxAvail;
|
d->downloadBufferReadPosition += maxAvail;
|
||||||
@ -1050,7 +1050,7 @@ qint64 QNetworkReplyImpl::readData(char *data, qint64 maxlen)
|
|||||||
|
|
||||||
|
|
||||||
if (d->readBuffer.isEmpty())
|
if (d->readBuffer.isEmpty())
|
||||||
return d->state == QNetworkReplyImplPrivate::Finished ? -1 : 0;
|
return d->state == QNetworkReplyPrivate::Finished ? -1 : 0;
|
||||||
// FIXME what about "Aborted" state?
|
// FIXME what about "Aborted" state?
|
||||||
|
|
||||||
d->backendNotify(QNetworkReplyImplPrivate::NotifyDownstreamReadyWrite);
|
d->backendNotify(QNetworkReplyImplPrivate::NotifyDownstreamReadyWrite);
|
||||||
@ -1101,7 +1101,7 @@ bool QNetworkReplyImplPrivate::migrateBackend()
|
|||||||
if (!backend->canResume())
|
if (!backend->canResume())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
state = QNetworkReplyImplPrivate::Reconnecting;
|
state = QNetworkReplyPrivate::Reconnecting;
|
||||||
|
|
||||||
if (backend) {
|
if (backend) {
|
||||||
delete backend;
|
delete backend;
|
||||||
|
@ -118,16 +118,6 @@ public:
|
|||||||
NotifyCopyFinished
|
NotifyCopyFinished
|
||||||
};
|
};
|
||||||
|
|
||||||
enum State {
|
|
||||||
Idle, // The reply is idle.
|
|
||||||
Buffering, // The reply is buffering outgoing data.
|
|
||||||
Working, // The reply is uploading/downloading data.
|
|
||||||
Finished, // The reply has finished.
|
|
||||||
Aborted, // The reply has been aborted.
|
|
||||||
WaitingForSession, // The reply is waiting for the session to open before connecting.
|
|
||||||
Reconnecting // The reply will reconnect to once roaming has completed.
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef QQueue<InternalNotifications> NotificationQueue;
|
typedef QQueue<InternalNotifications> NotificationQueue;
|
||||||
|
|
||||||
QNetworkReplyImplPrivate();
|
QNetworkReplyImplPrivate();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user