![]() |
AzerothCore 3.3.5a
OpenSource WoW Emulator
|
#include "WorldSessionMgr.h"
Public Types | |
| typedef std::unordered_map< uint32, WorldSession * > | SessionMap |
Public Member Functions | |
| WorldSessionMgr () | |
| ~WorldSessionMgr () | |
| WorldSession * | FindSession (uint32 id) const |
| Find a session by its id. | |
| WorldSession * | FindOfflineSession (uint32 id) const |
| WorldSession * | FindOfflineSessionForCharacterGUID (ObjectGuid::LowType guidLow) const |
| void | UpdateSessions (uint32 const diff) |
| bool | KickSession (uint32 id) |
| Remove a given session. | |
| void | KickAll () |
| Kick (and save) all players. | |
| void | KickAllLess (AccountTypes sec) |
Kick (and save) all players with security level less sec | |
| void | AddSession (WorldSession *session) |
| void | AddQueuedPlayer (WorldSession *session) |
| bool | RemoveQueuedPlayer (WorldSession *session) |
| int32 | GetQueuePos (WorldSession *session) |
| bool | HasRecentlyDisconnected (WorldSession *session) |
| SessionMap const & | GetAllSessions () const |
| void | UpdateMaxSessionCounters () |
| Get the number of current active sessions. | |
| uint32 | GetActiveAndQueuedSessionCount () const |
| uint32 | GetActiveSessionCount () const |
| uint32 | GetQueuedSessionCount () const |
| uint32 | GetMaxQueuedSessionCount () const |
| Get the maximum number of parallel sessions on the server since last reboot. | |
| uint32 | GetMaxActiveSessionCount () const |
| uint32 | GetPlayerCount () const |
| Get number of players. | |
| uint32 | GetMaxPlayerCount () const |
| void | SetPlayerAmountLimit (uint32 limit) |
| Active session server limit. | |
| uint32 | GetPlayerAmountLimit () const |
| void | IncreasePlayerCount () |
| Increase/Decrease number of players. | |
| void | DecreasePlayerCount () |
| void | SendGlobalMessage (WorldPacket const *packet, WorldSession *self=nullptr, TeamId teamId=TEAM_NEUTRAL) |
| Send a packet to all players (except self if mentioned) | |
| void | SendGlobalGMMessage (WorldPacket const *packet, WorldSession *self=nullptr, TeamId teamId=TEAM_NEUTRAL) |
| Send a packet to all GMs (except self if mentioned) | |
| void | SendServerMessage (ServerMessageType messageID, std::string stringParam="", Player *player=nullptr) |
| Send a server message to the user(s) | |
| void | DoForAllOnlinePlayers (std::function< void(Player *)> exec) |
Static Public Member Functions | |
| static WorldSessionMgr * | Instance () |
Private Types | |
| typedef std::unordered_map< uint32, time_t > | DisconnectMap |
| typedef std::list< WorldSession * > | Queue |
Private Member Functions | |
| void | AddSession_ (WorldSession *session) |
|
private |
|
private |
| typedef std::unordered_map<uint32, WorldSession*> WorldSessionMgr::SessionMap |
| WorldSessionMgr::WorldSessionMgr | ( | ) |
References _maxActiveSessionCount, _maxPlayerCount, _maxQueuedSessionCount, _playerCount, and _playerLimit.
| WorldSessionMgr::~WorldSessionMgr | ( | ) |
References _offlineSessions, and _sessions.
| void WorldSessionMgr::AddQueuedPlayer | ( | WorldSession * | session | ) |
References _queuedPlayer, AUTH_WAIT_QUEUE, GetQueuePos(), WorldSession::SendAuthResponse(), and WorldSession::SetInQueue().
Referenced by AddSession_().
| void WorldSessionMgr::AddSession | ( | WorldSession * | session | ) |
References _addSessQueue, and LockedQueue< T, StorageType >::add().
|
private |
References _disconnects, _offlineSessions, _sessions, AddQueuedPlayer(), ASSERT, WorldSession::CanSkipQueue(), CONFIG_INTERVAL_DISCONNECT_TOLERANCE, WorldSession::GetAccountId(), GetActiveAndQueuedSessionCount(), GameTime::GetGameTime(), GetPlayerAmountLimit(), WorldSession::GetSecurity(), WorldSession::HandleSocketClosed(), HasRecentlyDisconnected(), WorldSession::InitializeSession(), AccountMgr::IsPlayerAccount(), WorldSession::KickPlayer(), KickSession(), RemoveQueuedPlayer(), WorldSession::SetOfflineTime(), sWorld, and UpdateMaxSessionCounters().
Referenced by UpdateSessions().
|
inline |
References _playerCount.
| void WorldSessionMgr::DoForAllOnlinePlayers | ( | std::function< void(Player *)> | exec | ) |
References ObjectAccessor::GetPlayers().
| WorldSession * WorldSessionMgr::FindOfflineSession | ( | uint32 | id | ) | const |
References _offlineSessions.
| WorldSession * WorldSessionMgr::FindOfflineSessionForCharacterGUID | ( | ObjectGuid::LowType | guidLow | ) | const |
References _offlineSessions.
| WorldSession * WorldSessionMgr::FindSession | ( | uint32 | id | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
References _maxActiveSessionCount.
|
inline |
References _maxPlayerCount.
|
inline |
Get the maximum number of parallel sessions on the server since last reboot.
References _maxQueuedSessionCount.
|
inline |
|
inline |
|
inline |
References _queuedPlayer.
| int32 WorldSessionMgr::GetQueuePos | ( | WorldSession * | session | ) |
References _queuedPlayer.
Referenced by AddQueuedPlayer().
| bool WorldSessionMgr::HasRecentlyDisconnected | ( | WorldSession * | session | ) |
References _disconnects, CONFIG_INTERVAL_DISCONNECT_TOLERANCE, WorldSession::GetAccountId(), GameTime::GetGameTime(), and sWorld.
Referenced by AddSession_().
|
inline |
Increase/Decrease number of players.
References _maxPlayerCount, and _playerCount.
|
static |
| void WorldSessionMgr::KickAll | ( | ) |
Kick (and save) all players.
References _offlineSessions, _queuedPlayer, and _sessions.
| void WorldSessionMgr::KickAllLess | ( | AccountTypes | sec | ) |
Kick (and save) all players with security level less sec
References _sessions.
| bool WorldSessionMgr::KickSession | ( | uint32 | id | ) |
Remove a given session.
References _sessions, and WorldSession::KickPlayer().
Referenced by AddSession_().
| bool WorldSessionMgr::RemoveQueuedPlayer | ( | WorldSession * | session | ) |
References _queuedPlayer, ASSERT, GetActiveSessionCount(), GetPlayerAmountLimit(), WorldSession::InitializeSession(), WorldSession::ResetTimeOutTime(), and WorldSession::SetInQueue().
Referenced by AddSession_(), and UpdateSessions().
| void WorldSessionMgr::SendGlobalGMMessage | ( | WorldPacket const * | packet, |
| WorldSession * | self = nullptr, |
||
| TeamId | teamId = TEAM_NEUTRAL |
||
| ) |
Send a packet to all GMs (except self if mentioned)
References _sessions, AccountMgr::IsPlayerAccount(), and TEAM_NEUTRAL.
| void WorldSessionMgr::SendGlobalMessage | ( | WorldPacket const * | packet, |
| WorldSession * | self = nullptr, |
||
| TeamId | teamId = TEAM_NEUTRAL |
||
| ) |
Send a packet to all players (except self if mentioned)
References _sessions, and TEAM_NEUTRAL.
Referenced by SendServerMessage().
| void WorldSessionMgr::SendServerMessage | ( | ServerMessageType | messageID, |
| std::string | stringParam = "", |
||
| Player * | player = nullptr |
||
| ) |
Send a server message to the user(s)
References WorldPackets::Chat::ChatServerMessage::MessageID, Player::SendDirectMessage(), SendGlobalMessage(), SERVER_MSG_STRING, WorldPackets::Chat::ChatServerMessage::StringParam, and WorldPackets::Chat::ChatServerMessage::Write().
|
inline |
| void WorldSessionMgr::UpdateMaxSessionCounters | ( | ) |
Get the number of current active sessions.
References _maxActiveSessionCount, _maxQueuedSessionCount, _queuedPlayer, and _sessions.
Referenced by AddSession_().
| void WorldSessionMgr::UpdateSessions | ( | uint32 const | diff | ) |
References _addSessQueue, _disconnects, _offlineSessions, _sessions, AddSession_(), CONFIG_INTERVAL_DISCONNECT_TOLERANCE, WorldSession::GetAccountId(), GameTime::GetGameTime(), WorldSession::GetOfflineTime(), WorldSession::GetPlayer(), WorldSession::HandleSocketClosed(), WorldSession::IsKicked(), METRIC_DETAILED_NO_THRESHOLD_TIMER, METRIC_DETAILED_TIMER, METRIC_TAG, LockedQueue< T, StorageType >::next(), RemoveQueuedPlayer(), WorldSession::SetOfflineTime(), sWorld, and WorldSession::Update().
|
private |
Referenced by AddSession(), and UpdateSessions().
|
private |
Referenced by AddSession_(), HasRecentlyDisconnected(), and UpdateSessions().
|
private |
Referenced by GetMaxActiveSessionCount(), UpdateMaxSessionCounters(), and WorldSessionMgr().
|
private |
Referenced by GetMaxPlayerCount(), IncreasePlayerCount(), and WorldSessionMgr().
|
private |
Referenced by GetMaxQueuedSessionCount(), UpdateMaxSessionCounters(), and WorldSessionMgr().
|
private |
Referenced by AddSession_(), FindOfflineSession(), FindOfflineSessionForCharacterGUID(), KickAll(), UpdateSessions(), and ~WorldSessionMgr().
|
private |
Referenced by DecreasePlayerCount(), GetPlayerCount(), IncreasePlayerCount(), and WorldSessionMgr().
|
private |
Referenced by GetPlayerAmountLimit(), SetPlayerAmountLimit(), and WorldSessionMgr().
|
private |
|
private |