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;
38
39 bool TryConnect();
40
41 virtual void OnIsConnecting();
42 virtual void OnConnected();
43 virtual void OnDisconnected();
44 virtual void OnMessageReceived(SteamNetworkingMessage_t* msg);
45
48
50
51 void SyncAll();
52
53 void OnNetConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t* info);
54
55 constexpr static SizeT MaxMessagesPerFrame = 1024;
56
57protected:
61
62 double ping;
63
64 bool isOpen;
65
66 Timing::Timer timeoutTimer;
67
69 HSteamNetConnection connectionId = k_HSteamNetConnection_Invalid;
70 ISteamNetworkingSockets* netInterface;
71};
72
73//------------------------------------------------------------------------------
76inline bool
78{
79 return this->isOpen;
80}
81
82//--------------------------------------------------------------------------
85inline Timing::Time
87{
88 return this->ping;
89}
90
91} // namespace Multiplayer
92//------------------------------------------------------------------------------
void PushPendingMessages()
Definition basemultiplayerclient.cc:328
virtual void Close()
close the client
Definition basemultiplayerclient.cc:78
static constexpr SizeT MaxMessagesPerFrame
Definition basemultiplayerclient.h:55
void PollIncomingMessages()
Definition basemultiplayerclient.cc:286
void SyncAll()
Definition basemultiplayerclient.cc:260
bool IsOpen() const
return true if client is open
Definition basemultiplayerclient.h:77
HSteamNetConnection connectionId
Definition basemultiplayerclient.h:69
void OnNetConnectionStatusChanged(SteamNetConnectionStatusChangedCallback_t *info)
Definition basemultiplayerclient.cc:187
void PollConnectionChanges()
Definition basemultiplayerclient.cc:318
virtual void OnMessageReceived(SteamNetworkingMessage_t *msg)
Definition basemultiplayerclient.cc:169
bool TryConnect()
Definition basemultiplayerclient.cc:91
virtual void OnIsConnecting()
Definition basemultiplayerclient.cc:142
double ping
Definition basemultiplayerclient.h:62
ISteamNetworkingSockets * netInterface
Definition basemultiplayerclient.h:70
ConnectionStatus GetConnectionStatus() const
Definition basemultiplayerclient.cc:178
ConnectionStatus connectionStatus
Definition basemultiplayerclient.h:68
Timing::Time GetCurrentPing() const
Gets the estimated current packet roundtrip time (client->server->client).
Definition basemultiplayerclient.h:86
bool isOpen
Definition basemultiplayerclient.h:64
virtual void OnConnected()
Definition basemultiplayerclient.cc:151
virtual void OnDisconnected()
Definition basemultiplayerclient.cc:160
virtual ~BaseMultiplayerClient()
destructor
Definition basemultiplayerclient.cc:51
BaseMultiplayerClient()
constructor
Definition basemultiplayerclient.cc:42
virtual bool Open()
open the client
Definition basemultiplayerclient.cc:60
Timing::Timer timeoutTimer
Definition basemultiplayerclient.h:66
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