You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
3.3 KiB
76 lines
3.3 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $Workfile: $ |
|
// $Date: $ |
|
// |
|
//----------------------------------------------------------------------------- |
|
// $Log: $ |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
#if !defined( INETCHANNELINFO_H ) |
|
#define INETCHANNELINFO_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
|
|
#define FLOW_OUTGOING 0 |
|
#define FLOW_INCOMING 1 |
|
#define MAX_FLOWS 2 // in & out |
|
|
|
class INetChannelInfo |
|
{ |
|
public: |
|
|
|
enum { |
|
GENERIC = 0, // must be first and is default group |
|
LOCALPLAYER, // bytes for local player entity update |
|
OTHERPLAYERS, // bytes for other players update |
|
ENTITIES, // all other entity bytes |
|
SOUNDS, // game sounds |
|
EVENTS, // event messages |
|
USERMESSAGES, // user messages |
|
ENTMESSAGES, // entity messages |
|
VOICE, // voice data |
|
STRINGTABLE, // a stringtable update |
|
MOVE, // client move cmds |
|
STRINGCMD, // string command |
|
SIGNON, // various signondata |
|
TOTAL, // must be last and is not a real group |
|
}; |
|
|
|
virtual const char *GetName( void ) const = 0; // get channel name |
|
virtual const char *GetAddress( void ) const = 0; // get channel IP address as string |
|
virtual float GetTime( void ) const = 0; // current net time |
|
virtual float GetTimeConnected( void ) const = 0; // get connection time in seconds |
|
virtual int GetBufferSize( void ) const = 0; // netchannel packet history size |
|
virtual int GetDataRate( void ) const = 0; // send data rate in byte/sec |
|
|
|
virtual bool IsLoopback( void ) const = 0; // true if loopback channel |
|
virtual bool IsTimingOut( void ) const = 0; // true if timing out |
|
virtual bool IsPlayback( void ) const = 0; // true if demo playback |
|
|
|
virtual float GetLatency( int flow ) const = 0; // current latency (RTT), more accurate but jittering |
|
virtual float GetAvgLatency( int flow ) const = 0; // average packet latency in seconds |
|
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 GetAvgPackets( int flow ) const = 0; // avg packets/sec |
|
virtual int GetTotalData( int flow ) const = 0; // total flow in/out in bytes |
|
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 GetPacketBytes( int flow, int frame_number, int group ) const = 0; // group size of this packet |
|
virtual bool GetStreamProgress( int flow, int *received, int *total ) const = 0; // TCP progress if transmitting |
|
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 GetPacketResponseLatency( int flow, int frame_number, int *pnLatencyMsecs, int *pnChoke ) const = 0; |
|
virtual void GetRemoteFramerate( float *pflFrameTime, float *pflFrameTimeStdDeviation ) const = 0; |
|
|
|
virtual float GetTimeoutSeconds() const = 0; |
|
}; |
|
|
|
#endif // INETCHANNELINFO_H
|
|
|