27#include <boost/asio/ip/tcp.hpp>
28#include <google/protobuf/message.h>
41 class GetAccountStateRequest;
42 class GetAccountStateResponse;
43 class GetGameAccountStateRequest;
44 class GetGameAccountStateResponse;
47namespace authentication::v1
49 class GenerateWebCredentialsRequest;
51 class VerifyWebCredentialsRequest;
54namespace game_utilities::v1
58 class GetAllValuesForAttributeRequest;
59 class GetAllValuesForAttributeResponse;
112 explicit Session(boost::asio::ip::tcp::socket&& socket);
115 void Start()
override;
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)
Session(boost::asio::ip::tcp::socket &&socket)
uint32 JoinRealm(std::unordered_map< std::string, Variant const * > const ¶ms, game_utilities::v1::ClientResponse *response)
std::string GetClientInfo() const
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
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 *)
void CheckIpCallback(PreparedQueryResult result)
void HandshakeHandler(boost::system::error_code const &error)
uint32 GetLastCharPlayed(std::unordered_map< std::string, Variant const * > const ¶ms, game_utilities::v1::ClientResponse *response)
Socket< Session, SslSocket<> > BattlenetSocket
uint32 HandleGetGameAccountState(account::v1::GetGameAccountStateRequest const *request, account::v1::GetGameAccountStateResponse *response)
void ReadHandler() override
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 SendRequest(uint32 serviceHash, uint32 methodId, pb::Message const *request, std::function< void(MessageBuffer)> callback)
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.
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