Orbit Framework
An ultra-modern, asynchronous, cross-platform C++ Web Framework.
Loading...
Searching...
No Matches
SessionManager.hpp
Go to the documentation of this file.
1#pragma once
2#include <string>
3#include <memory>
7
8namespace middleware {
9
15public:
22 SessionManager(const std::string& redis_host, int redis_port);
23
32 bool operator()(http::HttpRequest& req, std::shared_ptr<http::ResponseWriter> writer);
33
34private:
35 std::string generate_session_id();
36
37 std::shared_ptr<database::RedisClient> redis_;
38};
39
48inline auto session(const std::string& redis_host, int redis_port) {
49 return [manager = std::make_shared<SessionManager>(redis_host, redis_port)]
50 (http::HttpRequest& req, std::shared_ptr<http::ResponseWriter> writer) -> bool {
51 return (*manager)(req, writer);
52 };
53}
54
55} // namespace middleware
Middleware for managing sessions using Redis.
Definition SessionManager.hpp:14
bool operator()(http::HttpRequest &req, std::shared_ptr< http::ResponseWriter > writer)
Middleware execution operator.
Definition SessionManager.cpp:24
auto session(const std::string &redis_host, int redis_port)
Helper to create a session management middleware handler.
Definition SessionManager.hpp:48
Definition Compress.hpp:4
Represents an incoming HTTP request.
Definition HttpRequest.hpp:22