From 2a9bb4fa6121de62d9e6ba06d9a109ba6d57f14c Mon Sep 17 00:00:00 2001 From: Mike Skec Date: Wed, 6 Jan 2021 19:37:26 +1100 Subject: cache code refactor --- src/cachehandler.hpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/cachehandler.hpp (limited to 'src/cachehandler.hpp') diff --git a/src/cachehandler.hpp b/src/cachehandler.hpp new file mode 100644 index 0000000..ca782bb --- /dev/null +++ b/src/cachehandler.hpp @@ -0,0 +1,48 @@ +#ifndef CACHEHANDLER_HPP +#define CACHEHANDLER_HPP + +#include "mimeparser.hpp" +#include +#include +#include +#include + +struct CachedPage +{ + QUrl url; + + QByteArray body; + + MimeType mime; + + int scroll_pos; + + // also: maybe compress page contents? May test + // to see if it's worth it + + CachedPage(const QUrl &url, const QByteArray &body, const MimeType &mime) + : url(url), body(body), mime(mime), scroll_pos(-1) + {} +}; + +typedef std::unordered_map> CacheMap; + +class CacheHandler +{ +public: + void push(QUrl const & url, QByteArray const & body, MimeType const & mime); + + std::shared_ptr find(QString const &url); + std::shared_ptr find(QUrl const &url); + + bool contains(QString const & url) const; + bool contains(QUrl const & url) const; + + CacheMap const& getPages() const; + +private: + // In-memory cache storage. + CacheMap page_cache; +}; + +#endif -- cgit v1.2.3