18#ifndef TRINITYCORE_SESSION_H
19#define TRINITYCORE_SESSION_H
28#include <boost/asio/ip/tcp.hpp>
29#include <google/protobuf/message.h>
42 class GetAccountStateRequest;
43 class GetAccountStateResponse;
44 class GetGameAccountStateRequest;
45 class GetGameAccountStateResponse;
48namespace authentication::v1
50 class GenerateWebCredentialsRequest;
52 class VerifyWebCredentialsRequest;
55namespace game_utilities::v1
59 class GetAllValuesForAttributeRequest;
60 class GetAllValuesForAttributeResponse;
68 class Session final :
public std::enable_shared_from_this<Session>
std::shared_ptr< PreparedResultSet > PreparedQueryResult
std::unordered_set< uint32 > params[2]
std::chrono::minutes Minutes
Minutes shorthand typedef.
uint32 GetGameAccountId() const
uint32 VerifyWebCredentials(std::string const &webCredentials, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation)
uint32 JoinRealm(std::unordered_map< std::string, Variant const * > const ¶ms, game_utilities::v1::ClientResponse *response)
std::string GetClientInfo() const
ClientBuild::VariantId _clientInfo
void DelayedCloseSocket()
uint32 HandleGenerateWebCredentials(authentication::v1::GenerateWebCredentialsRequest const *request, std::function< void(ServiceBase *, uint32, google::protobuf::Message const *)> &continuation)
static std::unordered_map< std::string, ClientRequestHandler > const ClientRequestHandlers
void SendResponse(uint32 token, pb::Message const *response)
uint32 GetAccountId() const
Trinity::Net::SocketReadCallbackResult ReadHandler()
uint32 GetRealmList(std::unordered_map< std::string, Variant const * > const ¶ms, game_utilities::v1::ClientResponse *response)
MessageBuffer _headerBuffer
uint32 HandleProcessClientRequest(game_utilities::v1::ClientRequest const *request, game_utilities::v1::ClientResponse *response)
uint32 HandleVerifyWebCredentials(authentication::v1::VerifyWebCredentialsRequest const *verifyWebCredentialsRequest, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation)
uint32(Session::* ClientRequestHandler)(std::unordered_map< std::string, Variant const * > const &, game_utilities::v1::ClientResponse *)
uint32 GetLastCharPlayed(std::unordered_map< std::string, Variant const * > const ¶ms, game_utilities::v1::ClientResponse *response)
static std::shared_ptr< Socket > CreateSocket(Trinity::Net::IoContextTcpSocket &&socket)
uint32 HandleGetGameAccountState(account::v1::GetGameAccountStateRequest const *request, account::v1::GetGameAccountStateResponse *response)
bool ReadHeaderLengthHandler()
void AsyncWrite(MessageBuffer *packet)
MessageBuffer _packetBuffer
uint32 HandleGetAllValuesForAttribute(game_utilities::v1::GetAllValuesForAttributeRequest const *request, game_utilities::v1::GetAllValuesForAttributeResponse *response)
QueryCallbackProcessor _queryProcessor
std::array< uint8, 32 > _clientSecret
GameAccountInfo * _gameAccountInfo
uint32 HandleLogon(authentication::v1::LogonRequest const *logonRequest, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation)
void QueueQuery(QueryCallback &&queryCallback)
void SendRequest(uint32 serviceHash, uint32 methodId, pb::Message const *request, std::function< void(MessageBuffer)> callback)
std::shared_ptr< Socket > _socket
boost::asio::ip::address const & GetRemoteIpAddress() const
MessageBuffer _headerLengthBuffer
uint32 HandleGetAccountState(account::v1::GetAccountStateRequest const *request, account::v1::GetAccountStateResponse *response)
std::unordered_map< uint32, std::function< void(MessageBuffer)> > _responseCallbacks
uint32 GetRealmListTicket(std::unordered_map< std::string, Variant const * > const ¶ms, game_utilities::v1::ClientResponse *response)
std::shared_ptr< AccountInfo > _accountInfo
Class used to access individual fields of database query result.
boost::asio::basic_stream_socket< boost::asio::ip::tcp, boost::asio::io_context::executor_type > IoContextTcpSocket
bool IsPermanenetlyBanned
std::unordered_map< uint32, GameAccountInfo > GameAccounts
void LoadResult(PreparedQueryResult result)
void LoadResult(Field const *fields)
std::unordered_map< uint32, uint8 > CharacterCounts
bool IsPermanenetlyBanned
std::unordered_map< std::string, LastPlayedCharacterInfo > LastPlayedCharacters
AccountTypes SecurityLevel
std::string CharacterName
Battlenet::RealmHandle RealmId