mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-09-19 20:16:10 +08:00
Update INetChannel & INetChannelInfo (#224)
This commit is contained in:
@ -12,27 +12,25 @@
|
|||||||
|
|
||||||
#include "tier0/platform.h"
|
#include "tier0/platform.h"
|
||||||
#include "inetchannelinfo.h"
|
#include "inetchannelinfo.h"
|
||||||
|
#include "steam/steamnetworkingtypes.h"
|
||||||
#include "tier1/bitbuf.h"
|
#include "tier1/bitbuf.h"
|
||||||
#include "tier1/netadr.h"
|
#include "tier1/netadr.h"
|
||||||
#include "tier1/utldelegate.h"
|
#include "tier1/utldelegate.h"
|
||||||
#include <eiface.h>
|
#include <eiface.h>
|
||||||
|
|
||||||
class IDemoRecorderBase;
|
class IDemoRecorderBase;
|
||||||
class IInstantReplayIntercept;
|
|
||||||
class IInstantReplayIntercept;
|
class IInstantReplayIntercept;
|
||||||
class INetMessage;
|
class INetMessage;
|
||||||
class INetChannelHandler;
|
class INetChannelHandler;
|
||||||
|
class INetChannel;
|
||||||
class INetChannelInfo;
|
class INetChannelInfo;
|
||||||
class INetMessageBinder;
|
class INetMessageBinder;
|
||||||
class INetworkMessageProcessingPreFilter;
|
class INetworkMessageProcessingPreFilter;
|
||||||
|
class INetworkSerializable;
|
||||||
class INetMessageDispatcher;
|
class INetMessageDispatcher;
|
||||||
class InstantReplayMessage_t;
|
class InstantReplayMessage_t;
|
||||||
class CUtlSlot;
|
class CUtlSlot;
|
||||||
|
|
||||||
DECLARE_HANDLE_32BIT(CSplitScreenPlayerSlot);
|
|
||||||
DECLARE_POINTER_HANDLE(NetMessageHandle_t);
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef NET_PACKET_ST_DEFINED
|
#ifndef NET_PACKET_ST_DEFINED
|
||||||
#define NET_PACKET_ST_DEFINED
|
#define NET_PACKET_ST_DEFINED
|
||||||
struct NetPacket_t
|
struct NetPacket_t
|
||||||
@ -57,82 +55,93 @@ enum NetChannelBufType_t : int8
|
|||||||
BUF_VOICE,
|
BUF_VOICE,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
abstract_class INetworkMessageProcessingPreFilter
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual bool FilterMessage( INetworkSerializable *pNetMessage, const void *pData, INetChannel *pChannel ) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
abstract_class INetChannel : public INetChannelInfo
|
abstract_class INetChannel : public INetChannelInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~INetChannel( void ) {};
|
virtual ~INetChannel( void ) {};
|
||||||
|
|
||||||
virtual size_t GetTotalPacketBytes( int, int ) const = 0;
|
|
||||||
virtual size_t GetTotalPacketReliableBytes( int, int ) const = 0;
|
|
||||||
virtual void SetTimeout(float seconds, bool bForceExact = false) = 0;
|
|
||||||
|
|
||||||
virtual void Reset( void ) = 0;
|
virtual void Reset( void ) = 0;
|
||||||
virtual void Clear( void ) = 0;
|
virtual void Clear( void ) = 0;
|
||||||
virtual void Shutdown(/* ENetworkDisconnectionReason */ int reason) = 0;
|
virtual void Shutdown( ENetworkDisconnectionReason reason ) = 0;
|
||||||
|
|
||||||
|
virtual HSteamNetConnection GetSteamNetConnection( void ) const = 0;
|
||||||
|
|
||||||
|
virtual bool SendNetMessage( INetworkSerializable *pNetMessage, const void *pData, NetChannelBufType_t bufType ) = 0;
|
||||||
virtual bool SendData( bf_write &msg, NetChannelBufType_t bufferType ) = 0;
|
virtual bool SendData( bf_write &msg, NetChannelBufType_t bufferType ) = 0;
|
||||||
virtual void SetChoked( void ) = 0;
|
virtual int Transmit( const char *pDebugName, bf_write *data ) = 0;
|
||||||
virtual bool Transmit( const char *, bf_write * ) = 0;
|
virtual void SetBitsToSend( void ) = 0;
|
||||||
|
virtual int SendMessages( const char *pDebugName, bf_write *data ) = 0;
|
||||||
|
virtual void ClearBitsToSend( void ) = 0;
|
||||||
|
|
||||||
virtual const netadr_t &GetRemoteAddress( void ) const = 0;
|
virtual const netadr_t &GetRemoteAddress( void ) const = 0;
|
||||||
virtual int GetDropNumber( void ) const = 0;
|
|
||||||
|
|
||||||
virtual void UpdateMessageStats( int msggroup, int bits, bool ) = 0;
|
virtual void UpdateMessageStats( int msggroup, int bits, bool ) = 0;
|
||||||
|
|
||||||
|
virtual void unk001( void ) = 0;
|
||||||
|
|
||||||
virtual bool CanPacket( void ) const = 0;
|
virtual bool CanPacket( void ) const = 0;
|
||||||
virtual bool IsOverflowed( void ) const = 0;
|
virtual bool IsOverflowed( void ) const = 0;
|
||||||
virtual bool HasPendingReliableData( void ) = 0;
|
virtual bool HasPendingReliableData( void ) = 0;
|
||||||
|
|
||||||
virtual void SetMaxBufferSize( NetChannelBufType_t bufferType, int nBytes ) = 0;
|
|
||||||
|
|
||||||
// For routing messages to a different handler
|
// For routing messages to a different handler
|
||||||
virtual bool SetActiveChannel( INetChannel *pNewChannel ) = 0;
|
virtual bool SetActiveChannel( INetChannel *pNewChannel ) = 0;
|
||||||
virtual void AttachSplitPlayer( CSplitScreenPlayerSlot nSplitPlayerSlot, INetChannel *pChannel ) = 0;
|
|
||||||
virtual void DetachSplitPlayer( CSplitScreenPlayerSlot nSplitPlayerSlot ) = 0;
|
|
||||||
|
|
||||||
virtual void SetUsesMaxRoutablePlayload(bool useMax) = 0;
|
virtual void AttachSplitPlayer( CSplitScreenSlot nSlot, INetChannel *pChannel ) = 0;
|
||||||
virtual void SetDataRate(float rate) = 0;
|
virtual void DetachSplitPlayer( CSplitScreenSlot nSlot ) = 0;
|
||||||
virtual void SetUpdateRate( int rate ) = 0;
|
|
||||||
virtual void SetCommandRate( int rate ) = 0;
|
|
||||||
|
|
||||||
virtual bool IsTimedOut( void ) const = 0;
|
virtual void SetMinDataRate( int rate ) = 0;
|
||||||
|
virtual void SetMaxDataRate( int rate ) = 0;
|
||||||
|
|
||||||
virtual void SetRemoteFramerate( float flFrameTime, float flFrameTimeStdDeviation, float flFrameStartTimeStdDeviation ) = 0;
|
virtual void SetTimeout( float seconds, bool bForceExact = false ) = 0;
|
||||||
virtual bool IsRemoteDisconnected() const = 0;
|
virtual bool IsTimedOut( void ) const = 0;
|
||||||
|
virtual void UpdateLastReceivedTime( void ) = 0;
|
||||||
|
|
||||||
|
virtual void SetRemoteFramerate( float flFrameTime, float flFrameTimeStdDeviation, float flFrameStartTimeStdDeviation, float flLoss, float flUnfilteredFrameTime ) = 0;
|
||||||
|
virtual bool IsRemoteDisconnected( ENetworkDisconnectionReason &reason ) const = 0;
|
||||||
|
|
||||||
virtual void SetNetMessageDispatcher( INetMessageDispatcher *pDispatcher ) = 0;
|
virtual void SetNetMessageDispatcher( INetMessageDispatcher *pDispatcher ) = 0;
|
||||||
virtual INetMessageDispatcher *GetNetMessageDispatcher( void ) const = 0;
|
virtual INetMessageDispatcher *GetNetMessageDispatcher( void ) const = 0;
|
||||||
virtual void SendNetMessage( NetMessageHandle_t msg, const void *pData, NetChannelBufType_t bufType ) = 0;
|
|
||||||
virtual void StartRegisteringMessageHandlers( void ) = 0;
|
virtual void StartRegisteringMessageHandlers( void ) = 0;
|
||||||
virtual void FinishRegisteringMessageHandlers( void ) = 0;
|
virtual void FinishRegisteringMessageHandlers( void ) = 0;
|
||||||
virtual void RegisterNetMessageHandlerAbstract( CUtlSlot *, const CUtlAbstractDelegate &, int, NetMessageHandle_t , int ) = 0;
|
|
||||||
virtual void UnregisterNetMessageHandlerAbstract( CUtlSlot *, const CUtlAbstractDelegate &, NetMessageHandle_t ) = 0;
|
virtual void RegisterNetMessageHandlerAbstract( CUtlSlot *nSlot, const CUtlAbstractDelegate &delegate, int nParamCount, INetworkSerializable *pNetMessage, int nPriority ) = 0;
|
||||||
|
virtual void UnregisterNetMessageHandlerAbstract( CUtlSlot *nSlot, const CUtlAbstractDelegate &delegate, INetworkSerializable *pNetMessage ) = 0;
|
||||||
|
|
||||||
virtual void SetChallengeNr( unsigned int challenge ) = 0;
|
virtual void SetChallengeNr( unsigned int challenge ) = 0;
|
||||||
virtual void GetSequenceData( int &nOutSequenceNr, int &nInSequenceNr, int &nOutSequenceNrAck ) = 0;
|
virtual int GetNumBitsWritten( NetChannelBufType_t bufferType ) const = 0;
|
||||||
virtual void SetSequenceData( int nOutSequenceNr, int nInSequenceNr, int nOutSequenceNrAck ) = 0;
|
virtual void SetDemoRecorder( IDemoRecorderBase *pDemoRecorder ) = 0;
|
||||||
virtual int GetNumBitsWritten(NetChannelBufType_t bufferType) const = 0;
|
virtual void SetInstantReplayIntercept( IInstantReplayIntercept *pInstantReplayIntercept ) = 0;
|
||||||
virtual void SetCompressionMode( bool ) = 0;
|
virtual bool IsNull( void ) const = 0;
|
||||||
// Max # of payload bytes before we must split/fragment the packet
|
virtual bool ProcessDemoPacket( NetPacket_t *packet ) = 0;
|
||||||
virtual void SetMaxRoutablePayloadSize( int nSplitSize ) = 0;
|
virtual bool WasLastMessageReliable( void ) const = 0;
|
||||||
virtual int GetMaxRoutablePayloadSize() = 0;
|
|
||||||
virtual void ProcessPacket( bf_read &packet, bool bHasHeader ) = 0;
|
virtual void InstallMessageFilter( INetworkMessageProcessingPreFilter *pFilter ) = 0;
|
||||||
virtual void SetDemoRecorder( IDemoRecorderBase * ) = 0;
|
virtual void UninstallMessageFilter( INetworkMessageProcessingPreFilter *pFilter ) = 0;
|
||||||
virtual void SetInstantReplayIntercept( IInstantReplayIntercept * ) = 0;
|
|
||||||
virtual void SetInterpolationAmount( float flInterpolationAmount ) = 0;
|
virtual void PostReceivedNetMessage( INetworkSerializable *pNetMessage, const void *pData, const NetChannelBufType_t *pBufType, int nBits, int nInSequenceNr ) = 0;
|
||||||
virtual void SetFileTransmissionMode( bool ) = 0;
|
virtual void InsertReplayMessage( InstantReplayMessage_t &msg ) = 0;
|
||||||
virtual bool IsNull() const = 0;
|
virtual bool HasQueuedPackets( int nMessageId ) const = 0;
|
||||||
virtual bool ProcessDemoPacket( NetPacket_t* packet ) = 0;
|
|
||||||
virtual bool WasLastMessageReliable() const = 0;
|
|
||||||
virtual void InstallMessageFilter( INetworkMessageProcessingPreFilter * ) = 0;
|
|
||||||
virtual void UninstallMessageFilter( INetworkMessageProcessingPreFilter * ) = 0;
|
|
||||||
virtual void PostReceivedNetMessage(NetMessageHandle_t, const void *, const NetChannelBufType_t* ) = 0;
|
|
||||||
virtual bool InsertReplayMessage( InstantReplayMessage_t &msg ) = 0;
|
|
||||||
virtual bool HasQueuedPackets( void ) const = 0;
|
|
||||||
|
|
||||||
virtual void SetPendingDisconnect( ENetworkDisconnectionReason reason ) = 0;
|
virtual void SetPendingDisconnect( ENetworkDisconnectionReason reason ) = 0;
|
||||||
virtual int GetPendingDisconnect() const = 0;
|
virtual ENetworkDisconnectionReason GetPendingDisconnect( void ) const = 0;
|
||||||
|
|
||||||
virtual bool IsSuppressingTransmit() const = 0;
|
virtual void SuppressTransmit( bool suppress ) = 0;
|
||||||
virtual void SuppressTransmit( bool ) = 0;
|
virtual bool IsSuppressingTransmit( void ) const = 0;
|
||||||
|
|
||||||
|
virtual EResult SendMessage( const void *pData, uint32 cbData, int nSendFlags ) = 0;
|
||||||
|
|
||||||
|
virtual int GetCurrentMessageBits( void ) const = 0;
|
||||||
|
virtual int GetCurrentMessageInSequenceNr( void ) const = 0;
|
||||||
|
|
||||||
|
virtual void unk101( void ) = 0;
|
||||||
|
virtual void unk102( void ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#define MAX_FLOWS 2 // in & out
|
#define MAX_FLOWS 2 // in & out
|
||||||
|
|
||||||
struct SNetChannelLatencyStats;
|
struct SNetChannelLatencyStats;
|
||||||
|
struct NetChanStat_t;
|
||||||
|
|
||||||
class INetChannelInfo
|
class INetChannelInfo
|
||||||
{
|
{
|
||||||
@ -57,29 +58,29 @@ public:
|
|||||||
virtual bool IsTimingOut( void ) const = 0; // true if timing out
|
virtual bool IsTimingOut( void ) const = 0; // true if timing out
|
||||||
virtual bool IsPlayback( void ) const = 0;
|
virtual bool IsPlayback( void ) const = 0;
|
||||||
|
|
||||||
virtual float GetLatency( int flow ) const = 0; // current latency (RTT), more accurate but jittering
|
virtual float GetAvgLatency( void ) const = 0; // average packet latency in seconds
|
||||||
virtual float GetAvgLatency( int flow ) const = 0; // average packet latency in seconds
|
virtual float GetEngineLatency( void ) const = 0; // current latency (RTT), more accurate but jittering
|
||||||
virtual float GetStdDevLatency(int flow) const = 0; // standard deviation of latency
|
virtual void GetLatencyBreakdown( NetChanStat_t* pPeer, NetChanStat_t* pNet, NetChanStat_t* pLocal, NetChanStat_t* pEngine ) const = 0;
|
||||||
|
|
||||||
virtual float GetAvgLoss( int flow ) const = 0; // avg packet loss[0..1]
|
virtual float GetAvgLoss( int flow ) const = 0; // avg packet loss[0..1]
|
||||||
virtual float GetAvgChoke( int flow ) const = 0; // avg packet choke[0..1]
|
|
||||||
virtual float GetAvgData( int flow ) const = 0; // data flow in bytes/sec
|
virtual float GetAvgData( int flow ) const = 0; // data flow in bytes/sec
|
||||||
virtual float GetAvgPackets( int flow ) const = 0; // avg packets/sec
|
virtual float GetAvgPackets( int flow ) const = 0; // avg packets/sec
|
||||||
virtual int GetTotalData( int flow ) const = 0; // total flow in/out in bytes
|
virtual int GetTotalData( int flow ) const = 0; // total flow in/out in bytes
|
||||||
virtual int GetTotalPackets( int flow ) const = 0;
|
virtual int GetTotalPackets( int flow ) const = 0;
|
||||||
virtual int GetSequenceNr( int flow ) const = 0; // last send seq number
|
virtual int GetSequenceNr( int flow ) const = 0; // last send seq number
|
||||||
virtual bool IsValidPacket( int flow, int frame_number ) const = 0; // true if packet was not lost/dropped/chocked/flushed
|
|
||||||
virtual float GetPacketTime( int flow, int frame_number ) const = 0; // time when packet was send
|
|
||||||
virtual int GetPacketBits( int flow, int frame_number, int group ) const = 0; // group size of this packet
|
|
||||||
virtual float GetTimeSinceLastReceived( void ) const = 0; // get time since last recieved packet in seconds
|
virtual float GetTimeSinceLastReceived( void ) const = 0; // get time since last recieved packet in seconds
|
||||||
virtual float GetCommandInterpolationAmount( int flow, int frame_number ) const = 0;
|
virtual void GetRemoteFramerate( float *pflFrameTime, float *pflFrameTimeStdDeviation, float *pflFrameStartTimeStdDeviation, float *pflUnfilteredFrameTime ) const = 0;
|
||||||
virtual void GetPacketResponseLatency( int flow, int frame_number, int *pnLatencyMsecs, int *pnChoke ) const = 0;
|
|
||||||
virtual void GetRemoteFramerate( float *pflFrameTime, float *pflFrameTimeStdDeviation, float *pflFrameStartTimeStdDeviation ) const = 0;
|
|
||||||
|
|
||||||
virtual float GetTimeoutSeconds() const = 0;
|
virtual float GetTimeoutSeconds( void ) const = 0;
|
||||||
|
virtual float GetTimeUntilTimeout( void ) const = 0;
|
||||||
|
|
||||||
virtual void ResetLatencyStats( int channel ) = 0;
|
virtual void ResetLatencyStats( int channel ) = 0;
|
||||||
virtual SNetChannelLatencyStats *GetLatencyStats( int channel ) const = 0;
|
virtual SNetChannelLatencyStats *GetLatencyStats( int channel ) const = 0;
|
||||||
virtual void SetLatencyStats( int channel, const SNetChannelLatencyStats &stats ) = 0;
|
virtual void SetLatencyStats( int channel, const SNetChannelLatencyStats &stats ) = 0;
|
||||||
|
|
||||||
|
virtual void SetInterpolationAmount( float flInterpolationAmount, float flUpdateRate ) = 0;
|
||||||
|
virtual void SetNumPredictionErrors( int num ) = 0;
|
||||||
|
virtual void SetShowNetMessages( bool show ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // INETCHANNELINFO_H
|
#endif // INETCHANNELINFO_H
|
||||||
|
Reference in New Issue
Block a user