aboutsummaryrefslogtreecommitdiff
path: root/launcher/net/HttpMetaCache.h
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/net/HttpMetaCache.h')
-rw-r--r--launcher/net/HttpMetaCache.h148
1 files changed, 74 insertions, 74 deletions
diff --git a/launcher/net/HttpMetaCache.h b/launcher/net/HttpMetaCache.h
index 1c10e8c7..e944b3d5 100644
--- a/launcher/net/HttpMetaCache.h
+++ b/launcher/net/HttpMetaCache.h
@@ -1,122 +1,122 @@
-/* Copyright 2013-2021 MultiMC Contributors
+// SPDX-License-Identifier: GPL-3.0-only
+/*
+ * PolyMC - Minecraft Launcher
+ * Copyright (c) 2022 flowln <flowlnlnln@gmail.com>
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 3.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2013-2021 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
#pragma once
-#include <QString>
+
#include <QMap>
-#include <qtimer.h>
+#include <QString>
+#include <QTimer>
#include <memory>
class HttpMetaCache;
-class MetaEntry
-{
-friend class HttpMetaCache;
-protected:
- MetaEntry() {}
-public:
- bool isStale()
- {
- return stale;
- }
- void setStale(bool stale)
- {
- this->stale = stale;
- }
- QString getFullPath();
- QString getRemoteChangedTimestamp()
- {
- return remote_changed_timestamp;
- }
- void setRemoteChangedTimestamp(QString remote_changed_timestamp)
- {
- this->remote_changed_timestamp = remote_changed_timestamp;
- }
- void setLocalChangedTimestamp(qint64 timestamp)
- {
- local_changed_timestamp = timestamp;
- }
- QString getETag()
- {
- return etag;
- }
- void setETag(QString etag)
- {
- this->etag = etag;
- }
- QString getMD5Sum()
- {
- return md5sum;
- }
- void setMD5Sum(QString md5sum)
- {
- this->md5sum = md5sum;
- }
-protected:
+class MetaEntry {
+ friend class HttpMetaCache;
+
+ protected:
+ MetaEntry() = default;
+
+ public:
+ auto isStale() -> bool { return stale; }
+ void setStale(bool stale) { this->stale = stale; }
+
+ auto getFullPath() -> QString;
+
+ auto getRemoteChangedTimestamp() -> QString { return remote_changed_timestamp; }
+ void setRemoteChangedTimestamp(QString remote_changed_timestamp) { this->remote_changed_timestamp = remote_changed_timestamp; }
+ void setLocalChangedTimestamp(qint64 timestamp) { local_changed_timestamp = timestamp; }
+
+ auto getETag() -> QString { return etag; }
+ void setETag(QString etag) { this->etag = etag; }
+
+ auto getMD5Sum() -> QString { return md5sum; }
+ void setMD5Sum(QString md5sum) { this->md5sum = md5sum; }
+
+ protected:
QString baseId;
QString basePath;
QString relativePath;
QString md5sum;
QString etag;
qint64 local_changed_timestamp = 0;
- QString remote_changed_timestamp; // QString for now, RFC 2822 encoded time
+ QString remote_changed_timestamp; // QString for now, RFC 2822 encoded time
bool stale = true;
};
-typedef std::shared_ptr<MetaEntry> MetaEntryPtr;
+using MetaEntryPtr = std::shared_ptr<MetaEntry>;
-class HttpMetaCache : public QObject
-{
+class HttpMetaCache : public QObject {
Q_OBJECT
-public:
+ public:
// supply path to the cache index file
HttpMetaCache(QString path = QString());
- ~HttpMetaCache();
+ ~HttpMetaCache() override;
// get the entry solely from the cache
// you probably don't want this, unless you have some specific caching needs.
- MetaEntryPtr getEntry(QString base, QString resource_path);
+ auto getEntry(QString base, QString resource_path) -> MetaEntryPtr;
// get the entry from cache and verify that it isn't stale (within reason)
- MetaEntryPtr resolveEntry(QString base, QString resource_path,
- QString expected_etag = QString());
+ auto resolveEntry(QString base, QString resource_path, QString expected_etag = QString()) -> MetaEntryPtr;
// add a previously resolved stale entry
- bool updateEntry(MetaEntryPtr stale_entry);
+ auto updateEntry(MetaEntryPtr stale_entry) -> bool;
// evict selected entry from cache
- bool evictEntry(MetaEntryPtr entry);
+ auto evictEntry(MetaEntryPtr entry) -> bool;
void addBase(QString base, QString base_root);
// (re)start a timer that calls SaveNow later.
void SaveEventually();
void Load();
- QString getBasePath(QString base);
-public
-slots:
+
+ auto getBasePath(QString base) -> QString;
+
+ public slots:
void SaveNow();
-private:
+ private:
// create a new stale entry, given the parameters
- MetaEntryPtr staleEntry(QString base, QString resource_path);
- struct EntryMap
- {
+ auto staleEntry(QString base, QString resource_path) -> MetaEntryPtr;
+
+ struct EntryMap {
QString base_path;
QMap<QString, MetaEntryPtr> entry_list;
};
+
QMap<QString, EntryMap> m_entries;
QString m_index_file;
QTimer saveBatchingTimer;