Nebula
Loading...
Searching...
No Matches
basemultiplayerclient.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
9#include "GameNetworkingSockets/steam/steamnetworkingtypes.h"
10#include "timing/timer.h"
11
12class ISteamNetworkingSockets;
13
14//------------------------------------------------------------------------------
15namespace Multiplayer
16{
17
24
26{
27public:
31 virtual ~BaseMultiplayerClient();
33 virtual bool Open();
35 virtual void Close();
37 bool IsOpen() const;
39 void Send(void* buf, int size);
40
41 bool TryConnect();
42
43 void SetHostIp(uint32_t ip);
44
45 virtual void OnIsConnecting();
46 virtual void OnConnected();
47 virtual void OnDisconnected();
48 virtual void OnMessageReceived(SteamNetworkingMessage_t* msg);
49
52
54
55 void SyncAll();
56
57 void OnNetConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t* info);
58
59 constexpr static SizeT MaxMessagesPerFrame = 1024;
60
61protected:
65
66 uint32_t hostIp;
67
68 double ping;
69
70 bool isOpen;
71
72 Timing::Timer timeoutTimer;
73
75 HSteamNetConnection connectionId = k_HSteamNetConnection_Invalid;
76 ISteamNetworkingSockets* netInterface;
77};
78
79//------------------------------------------------------------------------------
82inline bool
84{
85 return this->isOpen;
86}
87
88//--------------------------------------------------------------------------
91inline Timing::Time
93{
94 return this->ping;
95}
96
97//--------------------------------------------------------------------------
100inline void
102{
103 this->hostIp = ip;
104}
105
106} // namespace Multiplayer
107//------------------------------------------------------------------------------
void PushPendingMessages()
Definition basemultiplayerclient.cc:354
virtual void Close()
close the client
Definition basemultiplayerclient.cc:79
static constexpr SizeT MaxMessagesPerFrame
Definition basemultiplayerclient.h:59
void PollIncomingMessages()
Definition basemultiplayerclient.cc:312
void SyncAll()
Definition basemultiplayerclient.cc:286
bool IsOpen() const
return true if client is open
Definition basemultiplayerclient.h:83
void Send(void *buf, int size)
Definition basemultiplayerclient.cc:98
HSteamNetConnection connectionId
Definition basemultiplayerclient.h:75
void OnNetConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t *info)
Definition basemultiplayerclient.cc:213
void PollConnectionChanges()
Definition basemultiplayerclient.cc:344
virtual void OnMessageReceived(SteamNetworkingMessage_t *msg)
Definition basemultiplayerclient.cc:195
bool TryConnect()
Definition basemultiplayerclient.cc:117
uint32_t hostIp
Definition basemultiplayerclient.h:66
virtual void OnIsConnecting()
Definition basemultiplayerclient.cc:168
double ping
Definition basemultiplayerclient.h:68
void SetHostIp(uint32_t ip)
Definition basemultiplayerclient.h:101
ISteamNetworkingSockets * netInterface
Definition basemultiplayerclient.h:76
ConnectionStatus GetConnectionStatus() const
Definition basemultiplayerclient.cc:204
ConnectionStatus connectionStatus
Definition basemultiplayerclient.h:74
Timing::Time GetCurrentPing() const
Gets the estimated current packet roundtrip time (client->server->client).
Definition basemultiplayerclient.h:92
bool isOpen
Definition basemultiplayerclient.h:70
virtual void OnConnected()
Definition basemultiplayerclient.cc:177
virtual void OnDisconnected()
Definition basemultiplayerclient.cc:186
virtual ~BaseMultiplayerClient()
destructor
Definition basemultiplayerclient.cc:52
BaseMultiplayerClient()
constructor
Definition basemultiplayerclient.cc:42
virtual bool Open()
open the client
Definition basemultiplayerclient.cc:61
Timing::Timer timeoutTimer
Definition basemultiplayerclient.h:72
Definition basemultiplayerclient.cc:24
ConnectionStatus
Definition basemultiplayerclient.h:19
@ Connected
Definition basemultiplayerclient.h:22
@ TryingToConnect
Definition basemultiplayerclient.h:21
@ Disconnected
Definition basemultiplayerclient.h:20
double Time
the time datatype
Definition time.h:18
int SizeT
Definition types.h:40