Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qabstractnetworkcache.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QABSTRACTNETWORKCACHE_H
6#define QABSTRACTNETWORKCACHE_H
7
8#include <QtNetwork/qtnetworkglobal.h>
9#include <QtCore/qobject.h>
10#include <QtCore/qshareddata.h>
11#include <QtNetwork/qnetworkrequest.h>
12
13#include <utility>
14
15QT_BEGIN_NAMESPACE
16
17
18class QIODevice;
19class QDateTime;
20class QUrl;
21
23class Q_NETWORK_EXPORT QNetworkCacheMetaData
24{
25
26public:
27 typedef std::pair<QByteArray, QByteArray> RawHeader;
28 typedef QList<RawHeader> RawHeaderList;
29 typedef QHash<QNetworkRequest::Attribute, QVariant> AttributesMap;
30
31 QNetworkCacheMetaData();
32 QNetworkCacheMetaData(const QNetworkCacheMetaData &other);
33 ~QNetworkCacheMetaData();
34
35 QNetworkCacheMetaData &operator=(QNetworkCacheMetaData &&other) noexcept { swap(other); return *this; }
36 QNetworkCacheMetaData &operator=(const QNetworkCacheMetaData &other);
37
38 void swap(QNetworkCacheMetaData &other) noexcept
39 { d.swap(other.d); }
40
41 bool operator==(const QNetworkCacheMetaData &other) const;
42 inline bool operator!=(const QNetworkCacheMetaData &other) const
43 { return !(*this == other); }
44
45 bool isValid() const;
46
47 QUrl url() const;
48 void setUrl(const QUrl &url);
49
50 RawHeaderList rawHeaders() const;
51 void setRawHeaders(const RawHeaderList &headers);
52
53 QHttpHeaders headers() const;
54 void setHeaders(const QHttpHeaders &headers);
55
56 QDateTime lastModified() const;
57 void setLastModified(const QDateTime &dateTime);
58
59 QDateTime expirationDate() const;
60 void setExpirationDate(const QDateTime &dateTime);
61
62 bool saveToDisk() const;
63 void setSaveToDisk(bool allow);
64
65 AttributesMap attributes() const;
66 void setAttributes(const AttributesMap &attributes);
67
68private:
69 friend class QNetworkCacheMetaDataPrivate;
70 QSharedDataPointer<QNetworkCacheMetaDataPrivate> d;
71};
72
74
75Q_NETWORK_EXPORT QDataStream &operator<<(QDataStream &, const QNetworkCacheMetaData &);
76Q_NETWORK_EXPORT QDataStream &operator>>(QDataStream &, QNetworkCacheMetaData &);
77
78
80class Q_NETWORK_EXPORT QAbstractNetworkCache : public QObject
81{
82 Q_OBJECT
83
84public:
85 virtual ~QAbstractNetworkCache();
86
87 virtual QNetworkCacheMetaData metaData(const QUrl &url) = 0;
88 virtual void updateMetaData(const QNetworkCacheMetaData &metaData) = 0;
89 virtual QIODevice *data(const QUrl &url) = 0;
90 virtual bool remove(const QUrl &url) = 0;
91 virtual qint64 cacheSize() const = 0;
92
93 virtual QIODevice *prepare(const QNetworkCacheMetaData &metaData) = 0;
94 virtual void insert(QIODevice *device) = 0;
95
96public Q_SLOTS:
97 virtual void clear() = 0;
98
99protected:
100 explicit QAbstractNetworkCache(QObject *parent = nullptr);
101 QAbstractNetworkCache(QAbstractNetworkCachePrivate &dd, QObject *parent);
102
103private:
104 Q_DECLARE_PRIVATE(QAbstractNetworkCache)
105 Q_DISABLE_COPY(QAbstractNetworkCache)
106};
107
108QT_END_NAMESPACE
109
110#endif
The QAbstractNetworkCache class provides the interface for cache implementations.
\inmodule QtCore\reentrant
Definition qdatastream.h:50
static void save(QDataStream &out, const QNetworkCacheMetaData &metaData)
bool operator==(const QNetworkCacheMetaDataPrivate &other) const
static void load(QDataStream &in, QNetworkCacheMetaData &metaData)
The QNetworkCacheMetaData class provides cache information.