4#include "../cookie.hpp"
8#include <unordered_map>
11namespace malloy::http::sessions
24 using key_type = std::string;
25 using value_type = std::string;
26 using id_type = std::string;
90 set(
const key_type& key, value_type value)
92 if (key.empty() || value.empty())
106 std::optional<key_type>
116 if (value_opt && value_opt.value().empty())
163 .name = std::move(cookie_name),
171 .same_site = cookie::same_site_t::strict,
198 std::optional<value_type>
230 template<
typename Clock>
234 using time_point_t = std::chrono::time_point<Clock>;
246 m_access_time = Clock::now();
257 return m_access_time;
267 template<
typename Rep,
typename Period>
273 return (Clock::now() - m_access_time) > max_lifetime;
283 m_access_time = Clock::now();
287 time_point_t m_access_time;
Definition: cookie.hpp:19
Definition: session.hpp:233
time_point_t access_time() const noexcept
Definition: session.hpp:255
session_chrono(id_type &&id)
Definition: session.hpp:243
constexpr bool access_time_older_than(const std::chrono::duration< Rep, Period > &max_lifetime) const
Definition: session.hpp:271
void update_access_time() override
Definition: session.hpp:281
Definition: session.hpp:23
virtual void update_access_time()=0
virtual bool storage_set(const key_type &key, value_type value)=0
id_type id() const noexcept
Definition: session.hpp:147
session(const session &other)=delete
cookie generate_cookie(std::string cookie_name) const
Definition: session.hpp:160
session(id_type &&id)
Definition: session.hpp:36
session(session &&other) noexcept=delete
session & operator=(session &&other) noexcept=delete
virtual bool storage_remove(const key_type &key)=0
virtual ~session()=default
std::optional< key_type > get(const key_type &key)
Definition: session.hpp:107
virtual bool remove(const key_type &key)
Definition: session.hpp:131
bool set(const key_type &key, value_type value)
Definition: session.hpp:90
session & operator=(const session &other)=delete
virtual std::optional< value_type > storage_get(const key_type &key) const =0