SuperTuxKart
|
Represents a peer. This class is used to interface the ENetPeer structure. More...
#include <stk_peer.hpp>
Public Member Functions | |
STKPeer (ENetPeer *enet_peer, STKHost *host, uint32_t host_id) | |
Constructor for an empty peer. | |
void | sendPacket (NetworkString *data, bool reliable=true, bool encrypted=true) |
Sends a packet to this host. | |
void | disconnect () |
void | kick () |
Kick this peer (used by server). | |
void | reset () |
Forcefully disconnects a peer (used by server). | |
bool | isConnected () const |
Returns if the peer is connected or not. | |
bool | isSamePeer (const STKPeer *peer) const |
Returns if this STKPeer is the same as the given peer. | |
bool | isSamePeer (const ENetPeer *peer) const |
Returns if this STKPeer is the same as the given peer. | |
std::vector< std::shared_ptr< NetworkPlayerProfile > > & | getPlayerProfiles () |
bool | hasPlayerProfiles () const |
void | cleanPlayerProfiles () |
void | addPlayer (std::shared_ptr< NetworkPlayerProfile > p) |
void | setValidated (bool val) |
bool | isValidated () const |
Returns if the client is validated by server. | |
uint32_t | getHostId () const |
Returns the host id of this peer. | |
float | getConnectedTime () const |
void | setAvailableKartsTracks (std::set< std::string > &k, std::set< std::string > &t) |
void | eraseServerKarts (const std::set< std::string > &server_karts, std::set< std::string > &karts_erase) const |
void | eraseServerTracks (const std::set< std::string > &server_tracks, std::set< std::string > &tracks_erase) const |
std::pair< std::set< std::string >, std::set< std::string > > | getClientAssets () const |
void | setPingInterval (uint32_t interval) |
uint32_t | getPing () |
Returns the ping to this peer from host, it waits for 3 seconds for a stable ping returned by enet measured in ms. | |
Crypto * | getCrypto () const |
void | setCrypto (std::unique_ptr< Crypto > &&c) |
uint32_t | getAveragePing () const |
ENetPeer * | getENetPeer () const |
void | setWaitingForGame (bool val) |
bool | isWaitingForGame () const |
void | setSpectator (bool val) |
bool | isSpectator () const |
bool | isDisconnected () const |
void | setDisconnected (bool val) |
bool | hasWarnedForHighPing () const |
void | setWarnedForHighPing (bool val) |
void | clearAvailableKartIDs () |
void | addAvailableKartID (unsigned id) |
bool | availableKartID (unsigned id) |
const std::set< unsigned > & | getAvailableKartIDs () const |
void | setUserVersion (const std::string &uv) |
const std::string & | getUserVersion () const |
void | updateLastActivity () |
int | idleForSeconds () const |
void | setClientCapabilities (std::set< std::string > &caps) |
const std::set< std::string > & | getClientCapabilities () const |
bool | isAIPeer () const |
void | setPacketLoss (int loss) |
int | getPacketLoss () const |
const std::array< int, AS_TOTAL > & | getAddonsScores () const |
void | setAddonsScores (const std::array< int, AS_TOTAL > &scores) |
void | updateLastMessage () |
int64_t | getLastMessage () const |
void | updateConsecutiveMessages (bool too_fast) |
int | getConsecutiveMessages () const |
const SocketAddress & | getAddress () const |
void | setAlwaysSpectate (AlwaysSpectateMode mode) |
bool | alwaysSpectate () const |
void | resetAlwaysSpectateFull () |
Protected Attributes | |
ENetPeer * | m_enet_peer |
Pointer to the corresponding ENet peer data structure. | |
ENetAddress | m_address |
std::atomic_bool | m_validated |
True if this peer is validated by server. | |
std::atomic_bool | m_waiting_for_game |
True if this peer is waiting for game. | |
std::atomic_bool | m_spectator |
std::atomic_bool | m_disconnected |
std::atomic_bool | m_warned_for_high_ping |
std::atomic< uint8_t > | m_always_spectate |
uint32_t | m_host_id |
Host id of this peer. | |
std::unique_ptr< SocketAddress > | m_socket_address |
STKHost * | m_host |
std::vector< std::shared_ptr< NetworkPlayerProfile > > | m_players |
uint64_t | m_connected_time |
std::atomic< int64_t > | m_last_activity |
std::atomic< int64_t > | m_last_message |
int | m_consecutive_messages |
std::pair< std::set< std::string >, std::set< std::string > > | m_available_kts |
Available karts and tracks from this peer. | |
std::unique_ptr< Crypto > | m_crypto |
std::deque< uint32_t > | m_previous_pings |
std::atomic< uint32_t > | m_average_ping |
std::atomic< int > | m_packet_loss |
std::set< unsigned > | m_available_kart_ids |
std::string | m_user_version |
std::set< std::string > | m_client_capabilities |
List of client capabilities set when connecting it, to determine features available in same version. | |
std::array< int, AS_TOTAL > | m_addons_scores |
Represents a peer. This class is used to interface the ENetPeer structure.
void STKPeer::sendPacket | ( | NetworkString * | data, |
bool | reliable = true , |
||
bool | encrypted = true |
||
) |
Sends a packet to this host.
data | The data to send. |
reliable | If the data is sent reliable or not. |
encrypted | If the data is sent encrypted or not. |