14#include <unordered_map>
79 const std::vector<NetClient>&
GetClients()
const;
88 void SendTo(
const NetHost& host,
const char* buffer, uint32_t size);
128 const std::unordered_map<NetId, Node*>&
GetNetNodeMap()
const;
165 void UpdateReplication(
float deltaTime);
166 bool ReplicateNode(
Node* node,
NetId hostId,
bool force,
bool reliable);
167 void UpdateHostConnections(
float deltaTime);
168 void ProcessIncomingPackets(
float deltaTime);
172 void ResetToLocalStatus();
173 void BroadcastSession();
176 void UpdateReliablePackets(
float deltaTime);
177 bool UpdateReliablePackets(
NetHostProfile* profile,
float deltaTime);
179 bool HostProfileHasIncomingPacket(
NetHostProfile* profile, uint16_t seq);
180 bool SeqNumLess(uint16_t s1, uint16_t s2);
182 void SetIdRelevantToClient(
NetId netId,
bool relevant,
NetHostId hostId);
183 void UpdateNodeRelevancy(
Node* testNode);
186 std::vector<NetClient> mClients;
187 std::vector<NetSession> mSessions;
188 std::unordered_map<NetId, Node*> mNetNodeMap;
189 std::vector<Node*> mNetNodes;
191 uint32_t mBroadcastIp = 0;
192 uint32_t mMaxClients = 15;
193 uint32_t mReplicationIndex = 0;
194 uint32_t mIncrementalRepIndex = 0;
195 uint32_t mRelevancyUpdateIndex = 0;
196 NetId mNextNetId = 1;
197 float mConnectTimer = 0.0f;
198 float mBroadcastTimer = 0.0f;
199 float mPingTimer = 0.0f;
200 float mConnectTimeout = 5.0f;
201 float mInactiveTimeout = 15.0f;
202 float mUploadRate = 0;
203 float mDownloadRate = 0;
204 float mRelevancyDistanceSquared = (200.0f * 200.0f);
205 float mReplicationInterval = 0.0f;
206 float mReplicationTimer = 0.0f;
207 int32_t mBytesSent = 0;
208 int32_t mBytesReceived = 0;
213 std::string mSessionName;
214 bool mSearching =
false;
215 bool mEnableSessionBroadcast =
true;
216 bool mInOnlineSession =
false;
217 bool mEnableNetRelevancy =
false;
218 bool mEnableReliableReplication =
false;
219 bool mEnableIncrementalReplication =
true;
#define AUTHORITY_HOST_ID
Definition Constants.h:46
uint32_t NetId
Definition EngineTypes.h:65
uint8_t NetHostId
Definition EngineTypes.h:486
NetStatus
Definition EngineTypes.h:477
#define NET_INVALID_SOCKET
Definition NetworkConstants.h:6
#define OCT_DEFAULT_PORT
Definition NetworkConstants.h:8
bool NetIsLocal()
Definition NetworkManager.cpp:132
void(* NetCallbackConnectFP)(NetClient *)
Definition NetworkManager.h:31
bool NetIsAuthority()
Definition NetworkManager.cpp:137
bool NetIsServer()
Definition NetworkManager.cpp:127
bool NetIsClient()
Definition NetworkManager.cpp:122
void(* NetCallbackAcceptFP)()
Definition NetworkManager.h:32
NetHostId NetGetHostId()
Definition NetworkManager.cpp:142
void(* NetCallbackRejectFP)(NetMsgReject::Reason)
Definition NetworkManager.h:33
void(* NetCallbackDisconnectFP)(NetClient *)
Definition NetworkManager.h:34
void(* NetCallbackKickFP)(NetMsgKick::Reason)
Definition NetworkManager.h:35
Definition NetworkManager.h:38
bool IsReliableReplicationEnabled() const
Definition NetworkManager.cpp:601
void SetConnectCallback(NetCallbackConnectFP cb)
Definition NetworkManager.h:148
NetStatus GetNetStatus() const
Definition NetworkManager.cpp:861
void ResendPacket(NetHostProfile *hostProfile, ReliablePacket &packet)
Definition NetworkManager.cpp:1571
int32_t RecvFrom(char *buffer, uint32_t size, NetHost &outHost)
Definition NetworkManager.cpp:1819
void Login()
Definition NetworkManager.cpp:311
bool IsSessionBroadcastEnabled() const
Definition NetworkManager.cpp:463
Node * GetPawn(NetHostId id)
Definition NetworkManager.cpp:929
bool IsSearching() const
Definition NetworkManager.cpp:560
static void Destroy()
Definition NetworkManager.cpp:153
void RemoveNetNode(Node *node)
Definition NetworkManager.cpp:1052
const std::vector< NetClient > & GetClients() const
Definition NetworkManager.cpp:727
void EnableNetRelevancy(bool enable)
Definition NetworkManager.cpp:881
float GetUploadRate() const
Definition NetworkManager.cpp:962
void SendMessageToAllClients(const NetMsg *netMsg)
Definition NetworkManager.cpp:782
const std::unordered_map< NetId, Node * > & GetNetNodeMap() const
Definition NetworkManager.cpp:1098
void CloseSession()
Definition NetworkManager.cpp:409
static NetworkManager * Get()
Definition NetworkManager.cpp:162
void SendSpawnMessage(Node *node, NetClient *client)
Definition NetworkManager.cpp:1519
const std::string & GetSessionName() const
Definition NetworkManager.cpp:453
void PostTickUpdate(float deltaTime)
Definition NetworkManager.cpp:276
int32_t GetBytesReceived() const
Definition NetworkManager.cpp:957
void HandleReject(NetMsgReject::Reason reason)
Definition NetworkManager.cpp:1231
void SetScriptDisconnectCallback(const ScriptFunc &func)
Definition NetworkManager.h:157
void SetScriptAcceptCallback(const ScriptFunc &func)
Definition NetworkManager.h:155
void SendMessageToAllRelevantClients(const NetMsg *netMsg, NetId nodeNetId)
Definition NetworkManager.cpp:791
const std::vector< NetSession > & GetSessions() const
Definition NetworkManager.cpp:565
void HandleConnect(NetHost host, uint32_t gameCode, uint32_t version)
Definition NetworkManager.cpp:1114
void SendMessageImmediate(const NetHost &host, const NetMsg *netMsg)
Definition NetworkManager.cpp:811
void AddNetNode(Node *node, NetId netId)
Definition NetworkManager.cpp:1000
void SetDisconnectCallback(NetCallbackDisconnectFP cb)
Definition NetworkManager.h:151
void HandleAck(NetHost host, uint16_t sequenceNumber)
Definition NetworkManager.cpp:1307
void SendInvokeMsg(NetMsgInvoke &msg, Node *node, NetFunc *func, uint32_t numParams, const Datum **params)
Definition NetworkManager.cpp:1457
uint32_t GetMaxClients()
Definition NetworkManager.cpp:722
static void Create()
Definition NetworkManager.cpp:147
void JoinSession(const NetSession &session)
Definition NetworkManager.cpp:436
bool IsIncrementalReplicationEnabled() const
Definition NetworkManager.cpp:871
void OpenSession(const NetSessionOpenOptions &options)
Definition NetworkManager.cpp:333
void HandleDisconnect(NetHost host)
Definition NetworkManager.cpp:1250
float GetDownloadRate() const
Definition NetworkManager.cpp:968
void SetScriptKickCallback(const ScriptFunc &func)
Definition NetworkManager.h:158
void SendDestroyMessage(Node *node, NetClient *client)
Definition NetworkManager.cpp:1553
void SetKickCallback(NetCallbackKickFP cb)
Definition NetworkManager.h:152
void SetRelevancyDistance(float dist)
Definition NetworkManager.cpp:876
void SendReplicateMsg(NetMsgReplicate &repMsg, uint32_t &numVars, NetHostId hostId)
Definition NetworkManager.cpp:1431
NetHostId GetHostId() const
Definition NetworkManager.cpp:995
bool IsClient() const
Definition NetworkManager.cpp:979
void HandleKick(NetMsgKick::Reason reason)
Definition NetworkManager.cpp:1288
void ResendOutgoingReliablePackets(NetHostProfile *hostProfile)
Definition NetworkManager.cpp:1582
bool IsAuthority() const
Definition NetworkManager.cpp:989
bool IsLoggedIn() const
Definition NetworkManager.cpp:327
void SetReplicationInterval(float interval)
Definition NetworkManager.cpp:586
void EndSessionSearch()
Definition NetworkManager.cpp:496
float GetRelevancyDistanceSquared() const
Definition NetworkManager.cpp:886
void Disconnect()
Definition NetworkManager.cpp:668
void BeginSessionSearch()
Definition NetworkManager.cpp:468
bool IsServer() const
Definition NetworkManager.cpp:974
void SendInvokeScriptMsg(Script *script, ScriptNetFunc *func, uint32_t numParams, const Datum **params)
Definition NetworkManager.cpp:1512
void SetAcceptCallback(NetCallbackAcceptFP cb)
Definition NetworkManager.h:149
void HandleBroadcast(NetHost host, uint32_t gameCode, uint32_t version, const char *name, uint8_t maxPlayers, uint8_t numPlayers)
Definition NetworkManager.cpp:1376
void FlushSendBuffers()
Definition NetworkManager.cpp:1598
void HandleAccept(NetHostId assignedId)
Definition NetworkManager.cpp:1212
Node * GetNetNode(NetId netId)
Definition NetworkManager.cpp:1103
float GetReplicationInterval() const
Definition NetworkManager.cpp:591
void Initialize()
Definition NetworkManager.cpp:172
void SetRejectCallback(NetCallbackRejectFP cb)
Definition NetworkManager.h:150
void UpdateSearch()
Definition NetworkManager.cpp:512
void EnableSessionBroadcast(bool enable)
Definition NetworkManager.cpp:458
void SetScriptRejectCallback(const ScriptFunc &func)
Definition NetworkManager.h:156
void SetScriptConnectCallback(const ScriptFunc &func)
Definition NetworkManager.h:154
void SendTo(const NetHost &host, const char *buffer, uint32_t size)
Definition NetworkManager.cpp:1835
bool IsLocal() const
Definition NetworkManager.cpp:984
void EnableReliableReplication(bool reliable)
Definition NetworkManager.cpp:596
void SetPawn(NetHostId id, Node *pawn)
Definition NetworkManager.cpp:891
void EnableIncrementalReplication(bool enable)
Definition NetworkManager.cpp:866
void Shutdown()
Definition NetworkManager.cpp:193
int32_t GetBytesSent() const
Definition NetworkManager.cpp:952
void SendMessage(const NetMsg *netMsg, NetHostId receiverId)
Definition NetworkManager.cpp:732
void PreTickUpdate(float deltaTime)
Definition NetworkManager.cpp:213
void Logout()
Definition NetworkManager.cpp:319
void HandleReady(NetHost host)
Definition NetworkManager.cpp:1328
NetClient * FindNetClient(NetHostId id)
Definition NetworkManager.cpp:845
Definition ScriptFunc.h:10
Definition EngineTypes.h:508
Definition EngineTypes.h:489
Reason
Definition NetMsg.h:91
Reason
Definition NetMsg.h:70
Definition NetSession.h:18
Definition NetSession.h:7
Definition EngineTypes.h:497
Definition ScriptFunc.h:43
ScriptFunc mScriptFunc
Definition ScriptFunc.h:45
T mFuncPointer
Definition ScriptFunc.h:44