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
55
57
58 void SyncAll();
59
60 void OnNetConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t* info);
61
62 constexpr static SizeT MaxMessagesPerFrame = 1024;
63
64protected:
68
69 uint32_t hostIp;
70
71 double ping;
72
73 bool isOpen;
74
75 Timing::Timer timeoutTimer;
76
78 HSteamNetConnection connectionId = k_HSteamNetConnection_Invalid;
79 ISteamNetworkingSockets* netInterface;
80};
81
82//------------------------------------------------------------------------------
85inline bool
87{
88 return this->isOpen;
89}
90
91//--------------------------------------------------------------------------
94inline Timing::Time
96{
97 return this->ping;
98}
99
100//--------------------------------------------------------------------------
103inline void
105{
106 this->hostIp = ip;
107}
108
109} // namespace Multiplayer
110//------------------------------------------------------------------------------
void PushPendingMessages()
Definition basemultiplayerclient.cc:385
virtual void Close()
close the client
Definition basemultiplayerclient.cc:80
static constexpr SizeT MaxMessagesPerFrame
Definition basemultiplayerclient.h:62
void PollIncomingMessages()
Definition basemultiplayerclient.cc:342
void SyncAll()
Definition basemultiplayerclient.cc:287
bool IsOpen() const
return true if client is open
Definition basemultiplayerclient.h:86
void Send(void *buf, int size)
Definition basemultiplayerclient.cc:99
HSteamNetConnection connectionId
Definition basemultiplayerclient.h:78
void OnNetConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t *info)
Definition basemultiplayerclient.cc:214
void PollConnectionChanges()
Definition basemultiplayerclient.cc:375
virtual void OnMessageReceived(SteamNetworkingMessage_t *msg)
Definition basemultiplayerclient.cc:196
void DrawNetworkDebugInfo()
draw imgui network debug information
Definition basemultiplayerclient.cc:313
bool TryConnect()
Definition basemultiplayerclient.cc:118
uint32_t hostIp
Definition basemultiplayerclient.h:69
virtual void OnIsConnecting()
Definition basemultiplayerclient.cc:169
double ping
Definition basemultiplayerclient.h:71
void SetHostIp(uint32_t ip)
Definition basemultiplayerclient.h:104
ISteamNetworkingSockets * netInterface
Definition basemultiplayerclient.h:79
ConnectionStatus GetConnectionStatus() const
Definition basemultiplayerclient.cc:205
ConnectionStatus connectionStatus
Definition basemultiplayerclient.h:77
Timing::Time GetCurrentPing() const
Gets the estimated current packet roundtrip time (client->server->client).
Definition basemultiplayerclient.h:95
bool isOpen
Definition basemultiplayerclient.h:73
virtual void OnConnected()
Definition basemultiplayerclient.cc:178
virtual void OnDisconnected()
Definition basemultiplayerclient.cc:187
virtual ~BaseMultiplayerClient()
destructor
Definition basemultiplayerclient.cc:53
BaseMultiplayerClient()
constructor
Definition basemultiplayerclient.cc:43
virtual bool Open()
open the client
Definition basemultiplayerclient.cc:62
Timing::Timer timeoutTimer
Definition basemultiplayerclient.h:75
Definition basemultiplayerclient.cc:25
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:42