libosmscout
1.1.1
Toggle main menu visibility
Loading...
Searching...
No Matches
libosmscout-client-qt
include
osmscoutclientqt
PersistentCookieJar.h
Go to the documentation of this file.
1
/****************************************************************************
2
**
3
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
5
**
6
** This file is part of the tools applications of the Qt Toolkit.
7
**
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and Digia. For licensing terms and
14
** conditions see http://qt.digia.com/licensing. For further information
15
** use the contact form at http://qt.digia.com/contact-us.
16
**
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 2.1 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 2.1 requirements
23
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24
**
25
** In addition, as a special exception, Digia gives you certain additional
26
** rights. These rights are described in the Digia Qt LGPL Exception
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28
**
29
** GNU General Public License Usage
30
** Alternatively, this file may be used under the terms of the GNU
31
** General Public License version 3.0 as published by the Free Software
32
** Foundation and appearing in the file LICENSE.GPL included in the
33
** packaging of this file. Please review the following information to
34
** ensure the GNU General Public License version 3.0 requirements will be
35
** met: http://www.gnu.org/copyleft/gpl.html.
36
**
37
**
38
** $QT_END_LICENSE$
39
**
40
****************************************************************************/
41
46
47
#ifndef PERSISTENTCOOKIEJAR_H
48
#define PERSISTENTCOOKIEJAR_H
49
50
#include <QMutex>
51
#include <QNetworkCookieJar>
52
#include <QNetworkCookie>
53
54
#include <
osmscoutclientqt/ClientQtImportExport.h
>
55
#include <
osmscoutclientqt/OSMScoutQt.h
>
56
57
namespace
osmscout
{
58
59
class
OSMSCOUT_CLIENT_QT_API
PersistentCookieJar
:
public
QNetworkCookieJar {
60
public
:
61
PersistentCookieJar
(SettingsRef settings, QObject *parent = Q_NULLPTR) :
62
QNetworkCookieJar(parent), settings(settings) { load(); }
63
virtual
~PersistentCookieJar
() { save(); }
64
65
virtual
QList<QNetworkCookie>
cookiesForUrl
(
const
QUrl &url)
const
66
{
67
QMutexLocker lock(&mutex);
68
return
QNetworkCookieJar::cookiesForUrl(url);
69
}
70
71
virtual
bool
setCookiesFromUrl
(
const
QList<QNetworkCookie> &cookieList,
const
QUrl &url)
72
{
73
QMutexLocker lock(&mutex);
74
return
QNetworkCookieJar::setCookiesFromUrl(cookieList, url);
75
}
76
77
private
:
78
void
save()
79
{
80
QMutexLocker lock(&mutex);
81
QList<QNetworkCookie> list = allCookies();
82
QByteArray data;
83
foreach
(QNetworkCookie cookie, list) {
84
if
(!cookie.isSessionCookie()) {
85
data.append(cookie.toRawForm());
86
data.append(
"\n"
);
87
}
88
}
89
90
settings->SetCookieData(std::vector<char>(data.data(), data.data() + data.size()));
91
}
92
93
void
load()
94
{
95
QMutexLocker lock(&mutex);
96
const
auto
data = settings->GetCookieData();
97
setAllCookies(QNetworkCookie::parseCookies(QByteArray(data.data(), data.size())));
98
}
99
100
mutable
QMutex mutex;
101
SettingsRef settings;
102
};
103
104
}
105
106
#endif
/* PERSISTENTCOOKIEJAR_H */
ClientQtImportExport.h
OSMSCOUT_CLIENT_QT_API
#define OSMSCOUT_CLIENT_QT_API
Definition
ClientQtImportExport.h:45
OSMScoutQt.h
osmscout::PersistentCookieJar::~PersistentCookieJar
virtual ~PersistentCookieJar()
Definition
PersistentCookieJar.h:63
osmscout::PersistentCookieJar::PersistentCookieJar
PersistentCookieJar(SettingsRef settings, QObject *parent=Q_NULLPTR)
Definition
PersistentCookieJar.h:61
osmscout::PersistentCookieJar::setCookiesFromUrl
virtual bool setCookiesFromUrl(const QList< QNetworkCookie > &cookieList, const QUrl &url)
Definition
PersistentCookieJar.h:71
osmscout::PersistentCookieJar::cookiesForUrl
virtual QList< QNetworkCookie > cookiesForUrl(const QUrl &url) const
Definition
PersistentCookieJar.h:65
osmscout
Definition
Area.h:39
Generated by
1.17.0