diff options
| author | Mike Skec <skec@protonmail.ch> | 2021-01-06 19:37:26 +1100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2021-01-06 10:51:18 +0100 |
| commit | 2a9bb4fa6121de62d9e6ba06d9a109ba6d57f14c (patch) | |
| tree | 7f2b49ca97071b003697ffeaaa904ce1dfe166d6 /src/cachehandler.cpp | |
| parent | 24086fdfe92814c38da6d219916ee9d45d8ba581 (diff) | |
cache code refactor
Diffstat (limited to 'src/cachehandler.cpp')
| -rw-r--r-- | src/cachehandler.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/cachehandler.cpp b/src/cachehandler.cpp new file mode 100644 index 0000000..0bd7f36 --- /dev/null +++ b/src/cachehandler.cpp @@ -0,0 +1,53 @@ +#include "cachehandler.hpp" +#include "kristall.hpp" + +#include <QDebug> + +void CacheHandler::push(const QUrl &url, const QByteArray &body, const MimeType &mime) +{ + QString urlstr = url.toString(QUrl::FullyEncoded | QUrl::RemoveFragment); + + if (this->page_cache.find(urlstr) != this->page_cache.end()) + { + qDebug() << "Updating cached page"; + auto pg = this->page_cache[urlstr]; + pg->body = body; + pg->mime = mime; + return; + } + + this->page_cache[urlstr] = std::make_shared<CachedPage>(url, body, mime); + + qDebug() << "Pushed page to cache: " << url; + + return; +} + +std::shared_ptr<CachedPage> CacheHandler::find(const QString &url) +{ + if (this->page_cache.find(url) != this->page_cache.end()) + { + return page_cache[url]; + } + return nullptr; +} + +std::shared_ptr<CachedPage> CacheHandler::find(const QUrl &url) +{ + return this->find(url.toString(QUrl::FullyEncoded | QUrl::RemoveFragment)); +} + +bool CacheHandler::contains(const QString &url) const +{ + return this->page_cache.find(url) != this->page_cache.end(); +} + +bool CacheHandler::contains(const QUrl &url) const +{ + return this->contains(url.toString(QUrl::FullyEncoded | QUrl::RemoveFragment)); +} + +CacheMap const& CacheHandler::getPages() const +{ + return this->page_cache; +} |
