• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2     Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
3 
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8 
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13 
14     You should have received a copy of the GNU Library General Public License
15     along with this library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17     Boston, MA 02110-1301, USA.
18 */
19 
20 #include "config.h"
21 #include "ResourceRequest.h"
22 
23 #include <qglobal.h>
24 #if QT_VERSION >= 0x040400
25 
26 #include <QNetworkRequest>
27 #include <QUrl>
28 
29 namespace WebCore {
30 
toNetworkRequest() const31 QNetworkRequest ResourceRequest::toNetworkRequest() const
32 {
33     QNetworkRequest request;
34     request.setUrl(url());
35 
36     const HTTPHeaderMap &headers = httpHeaderFields();
37     for (HTTPHeaderMap::const_iterator it = headers.begin(), end = headers.end();
38          it != end; ++it) {
39         QByteArray name = QString(it->first).toAscii();
40         QByteArray value = QString(it->second).toAscii();
41         request.setRawHeader(name, value);
42     }
43 
44     switch (cachePolicy()) {
45     case ReloadIgnoringCacheData:
46         request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
47         break;
48     case ReturnCacheDataElseLoad:
49         request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
50         break;
51     case ReturnCacheDataDontLoad:
52         request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache);
53         break;
54     case UseProtocolCachePolicy:
55         // QNetworkRequest::PreferNetwork
56     default:
57         break;
58     }
59 
60     return request;
61 }
62 
63 }
64 
65 #endif
66