diff options
Diffstat (limited to 'public/inetchannelinfo.h')
| -rw-r--r-- | public/inetchannelinfo.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/public/inetchannelinfo.h b/public/inetchannelinfo.h new file mode 100644 index 0000000..41fe186 --- /dev/null +++ b/public/inetchannelinfo.h @@ -0,0 +1,76 @@ +//========= 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 |