#include <connection.h>
Classes | |
struct | rttstats |
Public Member Functions | |
Peer (Address address_, u16 id_, Connection *connection) | |
virtual | ~Peer () |
void | Drop () |
virtual void | PutReliableSendCommand (ConnectionCommand &c, unsigned int max_packet_size) |
virtual bool | getAddress (MTProtocols type, Address &toset)=0 |
bool | isPendingDeletion () |
void | ResetTimeout () |
bool | isTimedOut (float timeout) |
virtual u16 | getNextSplitSequenceNumber (u8 channel) |
virtual void | setNextSplitSequenceNumber (u8 channel, u16 seqnum) |
virtual SharedBuffer< u8 > | addSplitPacket (u8 channel, const BufferedPacket &toadd, bool reliable) |
virtual bool | Ping (float dtime, SharedBuffer< u8 > &data) |
virtual float | getStat (rtt_stat_type type) const |
Public Attributes | |
u16 | id |
unsigned int | m_increment_packets_remaining = 0 |
Protected Member Functions | |
virtual void | reportRTT (float rtt) |
void | RTTStatistics (float rtt, const std::string &profiler_id="", unsigned int num_samples=1000) |
bool | IncUseCount () |
void | DecUseCount () |
Protected Attributes | |
std::mutex | m_exclusive_access_mutex |
bool | m_pending_deletion = false |
Connection * | m_connection |
Address | address |
float | m_ping_timer = 0.0f |
Private Attributes | |
rttstats | m_rtt |
float | m_last_rtt = -1.0f |
unsigned int | m_usage = 0 |
float | m_timeout_counter = 0.0f |
u64 | m_last_timeout_check |
Friends | |
class | PeerHelper |
|
inline |
|
inlinevirtual |
References FATAL_ERROR_IF, m_exclusive_access_mutex, and m_usage.
|
inlinevirtual |
Reimplemented in con::UDPPeer.
References errorstream.
Referenced by con::ConnectionReceiveThread::handlePacketType_Split().
|
protected |
References m_exclusive_access_mutex, m_pending_deletion, m_usage, and sanity_check.
Referenced by con::PeerHelper::~PeerHelper().
void con::Peer::Drop | ( | ) |
References g_profiler, con::Connection::getDesc(), m_connection, m_exclusive_access_mutex, m_pending_deletion, m_usage, PROFILE, Profiler::remove(), and SPT_AVG.
Referenced by con::Connection::deletePeer().
|
pure virtual |
Implemented in con::UDPPeer.
Referenced by con::Connection::deletePeer(), con::Connection::GetPeerAddress(), con::ConnectionReceiveThread::handlePacketType_Reliable(), con::ConnectionReceiveThread::handlePacketType_Split(), con::Connection::lookupPeer(), con::ConnectionSendThread::rawSendAsPacket(), and con::ConnectionReceiveThread::receive().
|
inlinevirtual |
Reimplemented in con::UDPPeer.
Referenced by con::ConnectionSendThread::send().
|
inlinevirtual |
References con::AVG_JITTER, con::Peer::rttstats::avg_rtt, con::AVG_RTT, con::Peer::rttstats::jitter_avg, con::Peer::rttstats::jitter_max, con::Peer::rttstats::jitter_min, m_rtt, con::MAX_JITTER, con::Peer::rttstats::max_rtt, con::MAX_RTT, con::MIN_JITTER, con::Peer::rttstats::min_rtt, and con::MIN_RTT.
Referenced by con::Connection::getPeerStat(), and con::UDPPeer::reportRTT().
|
protected |
References m_exclusive_access_mutex, m_pending_deletion, and m_usage.
Referenced by con::PeerHelper::PeerHelper(), and con::PeerHelper::operator=().
|
inline |
References m_exclusive_access_mutex, and m_pending_deletion.
Referenced by con::Connection::lookupPeer().
bool con::Peer::isTimedOut | ( | float | timeout | ) |
References con::CALC_DTIME(), porting::getTimeMs(), m_exclusive_access_mutex, m_last_timeout_check, and m_timeout_counter.
Referenced by con::ConnectionSendThread::runTimeouts().
|
inlinevirtual |
Reimplemented in con::UDPPeer.
|
inlinevirtual |
Reimplemented in con::UDPPeer.
Referenced by con::ConnectionSendThread::sendReliable(), and con::ConnectionSendThread::sendToAllReliable().
|
inlineprotectedvirtual |
Reimplemented in con::UDPPeer.
|
inline |
References m_exclusive_access_mutex, and m_timeout_counter.
Referenced by con::ConnectionReceiveThread::receive().
|
protected |
References con::Peer::rttstats::avg_rtt, g_profiler, Profiler::graphAdd(), con::Peer::rttstats::jitter_avg, con::Peer::rttstats::jitter_max, con::Peer::rttstats::jitter_min, m_last_rtt, m_rtt, con::Peer::rttstats::max_rtt, and con::Peer::rttstats::min_rtt.
Referenced by con::UDPPeer::reportRTT().
|
inlinevirtual |
Reimplemented in con::UDPPeer.
Referenced by con::ConnectionSendThread::send().
|
friend |
|
protected |
u16 con::Peer::id |
Referenced by con::ConnectionSendThread::connect(), con::Connection::createPeer(), con::Connection::createServerPeer(), Server::deletingPeer(), Handler::deletingPeer(), con::ConnectionReceiveThread::handlePacketType_Control(), con::ConnectionReceiveThread::handlePacketType_Reliable(), con::ConnectionReceiveThread::handlePacketType_Split(), con::Connection::lookupPeer(), Server::peerAdded(), Handler::peerAdded(), Client::peerAdded(), and con::ConnectionSendThread::runTimeouts().
|
protected |
|
protected |
unsigned int con::Peer::m_increment_packets_remaining = 0 |
Referenced by con::ConnectionSendThread::sendPackets().
|
private |
Referenced by RTTStatistics().
|
private |
Referenced by isTimedOut().
|
protected |
Referenced by DecUseCount(), Drop(), IncUseCount(), and isPendingDeletion().
|
protected |
Referenced by con::UDPPeer::Ping().
|
private |
Referenced by getStat(), and RTTStatistics().
|
private |
Referenced by isTimedOut(), and ResetTimeout().
|
private |
Referenced by ~Peer(), DecUseCount(), Drop(), and IncUseCount().