aboutsummaryrefslogtreecommitdiff
path: root/mp/src/public/inetchannel.h
diff options
context:
space:
mode:
authorJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
committerJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
commit39ed87570bdb2f86969d4be821c94b722dc71179 (patch)
treeabc53757f75f40c80278e87650ea92808274aa59 /mp/src/public/inetchannel.h
downloadsource-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz
source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip
First version of the SOurce SDK 2013
Diffstat (limited to 'mp/src/public/inetchannel.h')
-rw-r--r--mp/src/public/inetchannel.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/mp/src/public/inetchannel.h b/mp/src/public/inetchannel.h
new file mode 100644
index 00000000..6a26b062
--- /dev/null
+++ b/mp/src/public/inetchannel.h
@@ -0,0 +1,91 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef INETCHANNEL_H
+#define INETCHANNEL_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tier0/platform.h"
+#include "inetchannelinfo.h"
+#include "tier1/bitbuf.h"
+
+class IDemoRecorder;
+class INetMessage;
+class INetChannelHandler;
+class INetChannelInfo;
+typedef struct netpacket_s netpacket_t;
+typedef struct netadr_s netadr_t;
+
+abstract_class INetChannel : public INetChannelInfo
+{
+public:
+ virtual ~INetChannel( void ) {};
+
+ virtual void SetDataRate(float rate) = 0;
+ virtual bool RegisterMessage(INetMessage *msg) = 0;
+ virtual bool StartStreaming( unsigned int challengeNr ) = 0;
+ virtual void ResetStreaming( void ) = 0;
+ virtual void SetTimeout(float seconds) = 0;
+ virtual void SetDemoRecorder(IDemoRecorder *recorder) = 0;
+ virtual void SetChallengeNr(unsigned int chnr) = 0;
+
+ virtual void Reset( void ) = 0;
+ virtual void Clear( void ) = 0;
+ virtual void Shutdown(const char *reason) = 0;
+
+ virtual void ProcessPlayback( void ) = 0;
+ virtual bool ProcessStream( void ) = 0;
+ virtual void ProcessPacket( struct netpacket_s* packet, bool bHasHeader ) = 0;
+
+ virtual bool SendNetMsg(INetMessage &msg, bool bForceReliable = false, bool bVoice = false ) = 0;
+#ifdef POSIX
+ FORCEINLINE bool SendNetMsg(INetMessage const &msg, bool bForceReliable = false, bool bVoice = false ) { return SendNetMsg( *( (INetMessage *) &msg ), bForceReliable, bVoice ); }
+#endif
+ virtual bool SendData(bf_write &msg, bool bReliable = true) = 0;
+ virtual bool SendFile(const char *filename, unsigned int transferID) = 0;
+ virtual void DenyFile(const char *filename, unsigned int transferID) = 0;
+ virtual void RequestFile_OLD(const char *filename, unsigned int transferID) = 0; // get rid of this function when we version the
+ virtual void SetChoked( void ) = 0;
+ virtual int SendDatagram(bf_write *data) = 0;
+ virtual bool Transmit(bool onlyReliable = false) = 0;
+
+ virtual const netadr_t &GetRemoteAddress( void ) const = 0;
+ virtual INetChannelHandler *GetMsgHandler( void ) const = 0;
+ virtual int GetDropNumber( void ) const = 0;
+ virtual int GetSocket( void ) const = 0;
+ virtual unsigned int GetChallengeNr( void ) const = 0;
+ virtual void GetSequenceData( int &nOutSequenceNr, int &nInSequenceNr, int &nOutSequenceNrAck ) = 0;
+ virtual void SetSequenceData( int nOutSequenceNr, int nInSequenceNr, int nOutSequenceNrAck ) = 0;
+
+ virtual void UpdateMessageStats( int msggroup, int bits) = 0;
+ virtual bool CanPacket( void ) const = 0;
+ virtual bool IsOverflowed( void ) const = 0;
+ virtual bool IsTimedOut( void ) const = 0;
+ virtual bool HasPendingReliableData( void ) = 0;
+
+ virtual void SetFileTransmissionMode(bool bBackgroundMode) = 0;
+ virtual void SetCompressionMode( bool bUseCompression ) = 0;
+ virtual unsigned int RequestFile(const char *filename) = 0;
+ virtual float GetTimeSinceLastReceived( void ) const = 0; // get time since last received packet in seconds
+
+ virtual void SetMaxBufferSize(bool bReliable, int nBytes, bool bVoice = false ) = 0;
+
+ virtual bool IsNull() const = 0;
+ virtual int GetNumBitsWritten( bool bReliable ) = 0;
+ virtual void SetInterpolationAmount( float flInterpolationAmount ) = 0;
+ virtual void SetRemoteFramerate( float flFrameTime, float flFrameTimeStdDeviation ) = 0;
+
+ // Max # of payload bytes before we must split/fragment the packet
+ virtual void SetMaxRoutablePayloadSize( int nSplitSize ) = 0;
+ virtual int GetMaxRoutablePayloadSize() = 0;
+
+ virtual int GetProtocolVersion() = 0;
+};
+
+
+#endif // INETCHANNEL_H