63 lines
1.0 KiB
C++
63 lines
1.0 KiB
C++
|
|
#ifndef NETWORK_BASE_H
|
|
#define NETWORK_BASE_H
|
|
#include "tier1/interface.h"
|
|
|
|
enum EPacketArrival
|
|
{
|
|
PACKET_MAY_ARRIVE,
|
|
PACKET_MUST_ARRIVE
|
|
};
|
|
|
|
struct NetPacket_t
|
|
{
|
|
void *pData;
|
|
uint32_t uSize;
|
|
uint64_t m_uOwner;
|
|
EPacketArrival m_eArrival;
|
|
};
|
|
|
|
enum ENetCallbackType
|
|
{
|
|
NET_NONE = 0,
|
|
NET_TRYING_TO_CONNECT,
|
|
NET_CONNECTED,
|
|
NET_DISCONNECTED,
|
|
|
|
NET_SERVER_READY_TO_USE,
|
|
};
|
|
|
|
struct NetCallback_t
|
|
{
|
|
ENetCallbackType m_eType;
|
|
uint64_t m_ullUserID;
|
|
uint64_t m_ullUserConnection;
|
|
};
|
|
|
|
typedef uint32_t (*NetCallbackFn)( NetCallback_t *pUser );
|
|
|
|
abstract_class INetworkBase
|
|
{
|
|
public:
|
|
virtual ~INetworkBase() = default;
|
|
|
|
virtual void NetThink() = 0;
|
|
virtual void SetCallback( NetCallbackFn fnCallback ) = 0;
|
|
|
|
virtual uint32_t BHasUpdates() = 0;
|
|
virtual NetPacket_t RecievePacket() = 0;
|
|
virtual NetPacket_t PeekPacket() = 0;
|
|
|
|
virtual void SendPacket( NetPacket_t stPacket ) = 0;
|
|
|
|
virtual bool BIsActive() = 0;
|
|
|
|
virtual uint64_t GetSteamID() = 0;
|
|
virtual const char *GetIP() = 0;
|
|
virtual uint16_t GetPort() = 0;
|
|
};
|
|
|
|
#define GAME_PORT
|
|
|
|
#endif
|