29#ifndef HORIZON_INTERFACES_INTERSERVERAPI_HPP
30#define HORIZON_INTERFACES_INTERSERVERAPI_HPP
32#include "Server/Common/Models/GameAccount.hpp"
33#include "Server/Common/Models/SessionData.hpp"
42template <
class SessionType>
65 std::shared_ptr<SessionData> session_data = std::make_shared<Horizon::Models::SessionData>();
66 PACKET_CI_SESSION_REQ send_pkt;
67 PACKET_IC_SESSION_REQ_ACK recv_pkt;
69 send_pkt.auth_code = auth_code;
72 &&
_inter_socket->get_session()->get_packet_handler()->send_and_receive_packet(send_pkt, &recv_pkt) == Horizon::Base::inter_packets::IC_SESSION_REQ_ACK) {
73 *session_data << recv_pkt.s;
83 _inter_socket->get_session()->get_packet_handler()->Send_CI_CONNECT_AUTH();
94 _inter_socket->get_session()->get_packet_handler()->Send_CI_SESSION_DEL(auth_code);
104 _inter_socket->get_session()->get_packet_handler()->Send_CI_SESSION_SET(*session_data);
116 std::shared_ptr<Horizon::Models::GameAccount> game_account = std::make_shared<Horizon::Models::GameAccount>();
117 PACKET_CI_GAME_ACCOUNT_REQ send_pkt;
118 PACKET_IC_GAME_ACCOUNT_REQ_ACK recv_pkt;
120 send_pkt.account_id = account_id;
123 &&
_inter_socket->get_session()->get_packet_handler()->send_and_receive_packet(send_pkt, &recv_pkt) == Horizon::Base::inter_packets::IC_GAME_ACCOUNT_REQ_ACK) {
124 *game_account << recv_pkt.s;
139 _inter_socket->get_session()->get_packet_handler()->Send_CI_GAME_ACCOUNT_DEL(account_id);
149 _inter_socket->get_session()->get_packet_handler()->Send_CI_GAME_ACCOUNT_SET(*game_account);
154 PACKET_CI_PING send_pkt;
155 PACKET_IC_PONG recv_pkt;
158 &&
_inter_socket->get_session()->get_packet_handler()->send_and_receive_packet(send_pkt, &recv_pkt) == Horizon::Base::inter_packets::IC_PONG)
Definition: InterServerAPI.hpp:44
std::shared_ptr< Horizon::Models::SessionData > get_session_data(uint32_t auth_code)
Obtain session data from the inter-server.
Definition: InterServerAPI.hpp:63
virtual ~InterServerAPI()
Definition: InterServerAPI.hpp:51
void request_authorisation()
Definition: InterServerAPI.hpp:80
std::shared_ptr< SessionType > _inter_socket
Definition: InterServerAPI.hpp:168
bool ping_inter_server()
Definition: InterServerAPI.hpp:152
void delete_game_account(uint32_t account_id)
Request inter to delete a game account from the server's storage.
Definition: InterServerAPI.hpp:136
void set_inter_socket(std::shared_ptr< SessionType > socket)
Definition: InterServerAPI.hpp:165
void delete_session(uint32_t auth_code)
Request inter to delete a session from the server's storage.
Definition: InterServerAPI.hpp:91
std::shared_ptr< Horizon::Models::GameAccount > get_game_account(uint32_t account_id)
Obtain game account data from the inter-server.
Definition: InterServerAPI.hpp:114
void store_session_data(std::shared_ptr< Horizon::Models::SessionData > const &session_data)
Insert or Update session data into the inter server storage.
Definition: InterServerAPI.hpp:101
void store_game_account(std::shared_ptr< Horizon::Models::GameAccount > game_account)
Insert or Update game account data into the inter server storage.
Definition: InterServerAPI.hpp:146
InterServerAPI()
Definition: InterServerAPI.hpp:46
std::shared_ptr< SessionType > get_inter_socket()
Definition: InterServerAPI.hpp:164
Definition: Element.hpp:7