1
This commit is contained in:
218
public/inetmsghandler.h
Normal file
218
public/inetmsghandler.h
Normal file
@ -0,0 +1,218 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $Workfile: $
|
||||
// $Date: $
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// $Log: $
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
#if !defined( INETMSGHANDLER_H )
|
||||
#define INETMSGHANDLER_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
class INetChannel;
|
||||
typedef struct netpacket_s netpacket_t;
|
||||
|
||||
class INetChannelHandler
|
||||
{
|
||||
public:
|
||||
virtual ~INetChannelHandler( void ) {};
|
||||
|
||||
virtual void ConnectionStart(INetChannel *chan) = 0; // called first time network channel is established
|
||||
|
||||
virtual void ConnectionClosing(const char *reason) = 0; // network channel is being closed by remote site
|
||||
|
||||
virtual void ConnectionCrashed(const char *reason) = 0; // network error occured
|
||||
|
||||
virtual void PacketStart(int incoming_sequence, int outgoing_acknowledged) = 0; // called each time a new packet arrived
|
||||
|
||||
virtual void PacketEnd( void ) = 0; // all messages has been parsed
|
||||
|
||||
virtual void FileRequested(const char *fileName, unsigned int transferID ) = 0; // other side request a file for download
|
||||
|
||||
virtual void FileReceived(const char *fileName, unsigned int transferID ) = 0; // we received a file
|
||||
|
||||
virtual void FileDenied(const char *fileName, unsigned int transferID ) = 0; // a file request was denied by other side
|
||||
|
||||
virtual void FileSent(const char *fileName, unsigned int transferID ) = 0; // we sent a file
|
||||
};
|
||||
|
||||
#define PROCESS_NET_MESSAGE( name ) \
|
||||
virtual bool Process##name( NET_##name *msg )
|
||||
|
||||
#define PROCESS_SVC_MESSAGE( name ) \
|
||||
virtual bool Process##name( SVC_##name *msg )
|
||||
|
||||
#define PROCESS_CLC_MESSAGE( name ) \
|
||||
virtual bool Process##name( CLC_##name *msg )
|
||||
|
||||
#define PROCESS_MM_MESSAGE( name ) \
|
||||
virtual bool Process##name( MM_##name *msg )
|
||||
|
||||
|
||||
#define REGISTER_NET_MSG( name ) \
|
||||
NET_##name * p##name = new NET_##name(); \
|
||||
p##name->m_pMessageHandler = this; \
|
||||
chan->RegisterMessage( p##name ); \
|
||||
|
||||
#define REGISTER_SVC_MSG( name ) \
|
||||
SVC_##name * p##name = new SVC_##name(); \
|
||||
p##name->m_pMessageHandler = this; \
|
||||
chan->RegisterMessage( p##name ); \
|
||||
|
||||
#define REGISTER_CLC_MSG( name ) \
|
||||
CLC_##name * p##name = new CLC_##name(); \
|
||||
p##name->m_pMessageHandler = this; \
|
||||
chan->RegisterMessage( p##name ); \
|
||||
|
||||
#define REGISTER_MM_MSG( name ) \
|
||||
MM_##name * p##name = new MM_##name(); \
|
||||
p##name->m_pMessageHandler = this; \
|
||||
chan->RegisterMessage( p##name ); \
|
||||
|
||||
class NET_Tick;
|
||||
class NET_StringCmd;
|
||||
class NET_SetConVar;
|
||||
class NET_SignonState;
|
||||
|
||||
|
||||
class INetMessageHandler
|
||||
{
|
||||
public:
|
||||
virtual ~INetMessageHandler( void ) {};
|
||||
|
||||
PROCESS_NET_MESSAGE( Tick ) = 0;
|
||||
PROCESS_NET_MESSAGE( StringCmd ) = 0;
|
||||
PROCESS_NET_MESSAGE( SetConVar ) = 0;
|
||||
PROCESS_NET_MESSAGE( SignonState ) = 0;
|
||||
};
|
||||
|
||||
class CLC_ClientInfo;
|
||||
class CLC_Move;
|
||||
class CLC_VoiceData;
|
||||
class CLC_BaselineAck;
|
||||
class CLC_ListenEvents;
|
||||
class CLC_RespondCvarValue;
|
||||
class CLC_FileCRCCheck;
|
||||
class CLC_FileMD5Check;
|
||||
class CLC_SaveReplay;
|
||||
class CLC_CmdKeyValues;
|
||||
|
||||
class IClientMessageHandler : public INetMessageHandler
|
||||
{
|
||||
public:
|
||||
virtual ~IClientMessageHandler( void ) {};
|
||||
|
||||
PROCESS_CLC_MESSAGE( ClientInfo ) = 0;
|
||||
PROCESS_CLC_MESSAGE( Move ) = 0;
|
||||
PROCESS_CLC_MESSAGE( VoiceData ) = 0;
|
||||
PROCESS_CLC_MESSAGE( BaselineAck ) = 0;
|
||||
PROCESS_CLC_MESSAGE( ListenEvents ) = 0;
|
||||
PROCESS_CLC_MESSAGE( RespondCvarValue ) = 0;
|
||||
PROCESS_CLC_MESSAGE( FileCRCCheck ) = 0;
|
||||
PROCESS_CLC_MESSAGE( FileMD5Check ) = 0;
|
||||
#if defined( REPLAY_ENABLED )
|
||||
PROCESS_CLC_MESSAGE( SaveReplay ) = 0;
|
||||
#endif
|
||||
PROCESS_CLC_MESSAGE( CmdKeyValues ) = 0;
|
||||
};
|
||||
|
||||
class SVC_Print;
|
||||
class SVC_ServerInfo;
|
||||
class SVC_SendTable;
|
||||
class SVC_ClassInfo;
|
||||
class SVC_SetPause;
|
||||
class SVC_CreateStringTable;
|
||||
class SVC_UpdateStringTable;
|
||||
class SVC_VoiceInit;
|
||||
class SVC_VoiceData;
|
||||
class SVC_Sounds;
|
||||
class SVC_SetView;
|
||||
class SVC_FixAngle;
|
||||
class SVC_CrosshairAngle;
|
||||
class SVC_BSPDecal;
|
||||
class SVC_GameEvent;
|
||||
class SVC_UserMessage;
|
||||
class SVC_EntityMessage;
|
||||
class SVC_PacketEntities;
|
||||
class SVC_TempEntities;
|
||||
class SVC_Prefetch;
|
||||
class SVC_Menu;
|
||||
class SVC_GameEventList;
|
||||
class SVC_GetCvarValue;
|
||||
class SVC_CmdKeyValues;
|
||||
class SVC_SetPauseTimed;
|
||||
|
||||
class IServerMessageHandler : public INetMessageHandler
|
||||
{
|
||||
public:
|
||||
virtual ~IServerMessageHandler( void ) {};
|
||||
|
||||
// Returns dem file protocol version, or, if not playing a demo, just returns PROTOCOL_VERSION
|
||||
virtual int GetDemoProtocolVersion() const = 0;
|
||||
|
||||
PROCESS_SVC_MESSAGE( Print ) = 0;
|
||||
PROCESS_SVC_MESSAGE( ServerInfo ) = 0;
|
||||
PROCESS_SVC_MESSAGE( SendTable ) = 0;
|
||||
PROCESS_SVC_MESSAGE( ClassInfo ) = 0;
|
||||
PROCESS_SVC_MESSAGE( SetPause ) = 0;
|
||||
PROCESS_SVC_MESSAGE( CreateStringTable ) = 0;
|
||||
PROCESS_SVC_MESSAGE( UpdateStringTable ) = 0;
|
||||
PROCESS_SVC_MESSAGE( VoiceInit ) = 0;
|
||||
PROCESS_SVC_MESSAGE( VoiceData ) = 0;
|
||||
PROCESS_SVC_MESSAGE( Sounds ) = 0;
|
||||
PROCESS_SVC_MESSAGE( SetView ) = 0;
|
||||
PROCESS_SVC_MESSAGE( FixAngle ) = 0;
|
||||
PROCESS_SVC_MESSAGE( CrosshairAngle ) = 0;
|
||||
PROCESS_SVC_MESSAGE( BSPDecal ) = 0;
|
||||
PROCESS_SVC_MESSAGE( GameEvent ) = 0;
|
||||
PROCESS_SVC_MESSAGE( UserMessage ) = 0;
|
||||
PROCESS_SVC_MESSAGE( EntityMessage ) = 0;
|
||||
PROCESS_SVC_MESSAGE( PacketEntities ) = 0;
|
||||
PROCESS_SVC_MESSAGE( TempEntities ) = 0;
|
||||
PROCESS_SVC_MESSAGE( Prefetch ) = 0;
|
||||
PROCESS_SVC_MESSAGE( Menu ) = 0;
|
||||
PROCESS_SVC_MESSAGE( GameEventList ) = 0;
|
||||
PROCESS_SVC_MESSAGE( GetCvarValue ) = 0;
|
||||
PROCESS_SVC_MESSAGE( CmdKeyValues ) = 0;
|
||||
PROCESS_SVC_MESSAGE( SetPauseTimed ) = 0;
|
||||
};
|
||||
|
||||
class MM_Heartbeat;
|
||||
class MM_ClientInfo;
|
||||
class MM_JoinResponse;
|
||||
class MM_RegisterResponse;
|
||||
class MM_Migrate;
|
||||
class MM_Mutelist;
|
||||
class MM_Checkpoint;
|
||||
|
||||
class IMatchmakingMessageHandler : public INetMessageHandler
|
||||
{
|
||||
public:
|
||||
virtual ~IMatchmakingMessageHandler( void ) {};
|
||||
|
||||
PROCESS_MM_MESSAGE( Heartbeat ) = 0;
|
||||
PROCESS_MM_MESSAGE( ClientInfo ) = 0;
|
||||
PROCESS_MM_MESSAGE( JoinResponse ) = 0;
|
||||
PROCESS_MM_MESSAGE( RegisterResponse ) = 0;
|
||||
PROCESS_MM_MESSAGE( Migrate ) = 0;
|
||||
PROCESS_MM_MESSAGE( Mutelist ) = 0;
|
||||
PROCESS_MM_MESSAGE( Checkpoint) = 0;
|
||||
};
|
||||
|
||||
class IConnectionlessPacketHandler
|
||||
{
|
||||
public:
|
||||
virtual ~IConnectionlessPacketHandler( void ) {};
|
||||
|
||||
virtual bool ProcessConnectionlessPacket( netpacket_t *packet ) = 0; // process a connectionless packet
|
||||
};
|
||||
|
||||
|
||||
#endif // INETMSGHANDLER_H
|
Reference in New Issue
Block a user