MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / OnNetworkMessageKey

Function OnNetworkMessageKey

Source/Engine/Networking/NetworkManager.cpp:340–376  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

338}
339
340void OnNetworkMessageKey(NetworkEvent& event, NetworkClient* client, NetworkPeer* peer)
341{
342 // Read key data
343 NetworkMessageKey msgData;
344 event.Message.ReadStructure(msgData);
345 Guid id;
346 StringAnsiView name;
347 if (msgData.Type == NetworkKey::TypeId)
348 event.Message.ReadBytes((uint8*)&id, sizeof(Guid));
349 else
350 name = event.Message.ReadStringAnsi();
351
352 ScopeLock lock(Keys.Lock);
353 if (NetworkManager::IsClient())
354 {
355 // Add new key
356 if (msgData.Index >= (uint32)Keys.Table.Count())
357 Keys.Table.Resize(msgData.Index + 1);
358 NetworkKey& key = Keys.Table[msgData.Index];
359 ASSERT_LOW_LAYER(key.Type == NetworkKey::TypeNone);
360 key.Type = (NetworkKey::Types)msgData.Type;
361 if (key.Type == NetworkKey::TypeId)
362 {
363 key.Id = id;
364 Keys.LookupId.Add(id, msgData.Index);
365 }
366 else
367 {
368 key.Name = CloneAllocName(name);
369 Keys.LookupName.Add(key.Name, msgData.Index);
370 }
371 }
372 else
373 {
374 // TODO: make new pending key if client explicitly sends it
375 }
376}
377
378namespace
379{

Callers

nothing calls this directly

Calls 6

CloneAllocNameFunction · 0.85
ReadStringAnsiMethod · 0.80
ReadBytesMethod · 0.45
CountMethod · 0.45
ResizeMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected