Cavoke  1.1.0
A Platform for creating and hosting multiplayer turn-based board games
Loading...
Searching...
No Matches
sessions_storage.h
1#ifndef CAVOKE_SERVER_SESSIONS_STORAGE_H
2#define CAVOKE_SERVER_SESSIONS_STORAGE_H
3
4#include <map>
5#include <string>
6#include "game_session.h"
7#include "model/logic/game_logic_manager.h"
8
9namespace cavoke::server::model {
10
12 std::shared_ptr<GameLogicManager> m_game_logic_manager;
13 std::shared_ptr<GamesStorage> m_games_storage;
14 std::shared_ptr<GameStateStorage> m_game_state_storage;
15
16public:
17 SessionsStorage(std::shared_ptr<GameLogicManager> mGameLogicManager,
18 std::shared_ptr<GamesStorage> mGamesStorage,
19 std::shared_ptr<GameStateStorage> mGameStateStorage);
20
23 const GameConfig &game_config,
24 const std::string &host_user_id,
25 const std::string &room_id = "");
26
28 void start_session(const std::string &session_id,
29 std::optional<json> game_settings);
30
33 const std::string &invite_code,
34 const std::string &user_id,
35 std::optional<int> player_id = {});
36
39 const std::string &session_id,
40 std::optional<json> game_settings);
41
44 const std::string &session_id,
45 drogon::orm::DbClientPtr dbClient = drogon::app().getDbClient());
46
47 friend class GameSessionAccessObject;
48};
49
50} // namespace cavoke::server::model
51
52#endif // CAVOKE_SERVER_SESSIONS_STORAGE_H
cavoke::ValidationResult validate_session(const std::string &session_id, std::optional< json > game_settings)
Validates the settings for given session.
void start_session(const std::string &session_id, std::optional< json > game_settings)
Starts session with given settings.
GameSessionAccessObject::GameSessionInfo join_session(const std::string &invite_code, const std::string &user_id, std::optional< int > player_id={})
Tries to connect given user into a session.
GameSessionAccessObject::GameSessionInfo create_session(const GameConfig &game_config, const std::string &host_user_id, const std::string &room_id="")
Creates session for given user with given game_config.
GameSessionAccessObject get_sessionAO(const std::string &session_id, drogon::orm::DbClientPtr dbClient=drogon::app().getDbClient())
Gets an access object for given session.
Serializable representation of session for client.
Definition: game_session.h:97