Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsnetworkreply.cpp 3 : : ------------------- 4 : : begin : November 2018 5 : : copyright : (C) 2018 by Nyall Dawson 6 : : email : nyall dot dawson at gmail dot com 7 : : *************************************************************************** 8 : : * * 9 : : * This program is free software; you can redistribute it and/or modify * 10 : : * it under the terms of the GNU General Public License as published by * 11 : : * the Free Software Foundation; either version 2 of the License, or * 12 : : * (at your option) any later version. * 13 : : * * 14 : : ***************************************************************************/ 15 : : 16 : : #include "qgsnetworkreply.h" 17 : : #include <QNetworkReply> 18 : : 19 : 0 : QgsNetworkReplyContent::QgsNetworkReplyContent( QNetworkReply *reply ) 20 : 0 : : mError( reply->error() ) 21 : 0 : , mErrorString( reply->errorString() ) 22 : 0 : , mRawHeaderPairs( reply->rawHeaderPairs() ) 23 : 0 : , mRequest( reply->request() ) 24 : : { 25 : 0 : int maxAttribute = static_cast< int >( QNetworkRequest::Http2DirectAttribute ); 26 : 0 : for ( int i = 0; i <= maxAttribute; ++i ) 27 : : { 28 : 0 : if ( reply->attribute( static_cast< QNetworkRequest::Attribute>( i ) ).isValid() ) 29 : 0 : mAttributes[ static_cast< QNetworkRequest::Attribute>( i ) ] = reply->attribute( static_cast< QNetworkRequest::Attribute>( i ) ); 30 : 0 : } 31 : : 32 : 0 : bool ok = false; 33 : 0 : int requestId = reply->property( "requestId" ).toInt( &ok ); 34 : 0 : if ( ok ) 35 : 0 : mRequestId = requestId; 36 : 0 : } 37 : : 38 : 0 : void QgsNetworkReplyContent::clear() 39 : : { 40 : 0 : *this = QgsNetworkReplyContent(); 41 : 0 : } 42 : : 43 : 0 : QVariant QgsNetworkReplyContent::attribute( QNetworkRequest::Attribute code ) const 44 : : { 45 : 0 : return mAttributes.value( code ); 46 : 0 : } 47 : : 48 : 0 : bool QgsNetworkReplyContent::hasRawHeader( const QByteArray &headerName ) const 49 : : { 50 : 0 : for ( auto &header : mRawHeaderPairs ) 51 : : { 52 : 0 : if ( header.first == headerName ) 53 : 0 : return true; 54 : : } 55 : 0 : return false; 56 : 0 : } 57 : : 58 : 0 : QList<QByteArray> QgsNetworkReplyContent::rawHeaderList() const 59 : : { 60 : 0 : QList< QByteArray > res; 61 : 0 : res.reserve( mRawHeaderPairs.length() ); 62 : 0 : for ( auto &header : mRawHeaderPairs ) 63 : : { 64 : 0 : res << header.first; 65 : : } 66 : 0 : return res; 67 : 0 : } 68 : : 69 : 0 : QByteArray QgsNetworkReplyContent::rawHeader( const QByteArray &headerName ) const 70 : : { 71 : 0 : for ( auto &header : mRawHeaderPairs ) 72 : : { 73 : 0 : if ( header.first == headerName ) 74 : 0 : return header.second; 75 : : } 76 : 0 : return QByteArray(); 77 : 0 : }