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

Function StartPeer

Source/Engine/Networking/NetworkManager.cpp:417–459  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

415NetworkManagerService NetworkManagerServiceInstance;
416
417bool StartPeer()
418{
419 PROFILE_CPU();
420 PROFILE_MEM(Networking);
421 ASSERT_LOW_LAYER(!NetworkManager::Peer);
422 NetworkManager::State = NetworkConnectionState::Connecting;
423 NetworkManager::StateChanged();
424 const auto& settings = *NetworkSettings::Get();
425
426 // Create Network Peer that will use underlying INetworkDriver to send messages over the network
427 NetworkConfig networkConfig;
428 if (NetworkManager::Mode == NetworkManagerMode::Client)
429 {
430 // Client
431 networkConfig.Address = settings.Address;
432 networkConfig.Port = settings.Port;
433 networkConfig.ConnectionsLimit = 1;
434 }
435 else
436 {
437 // Server or Host
438 networkConfig.Address = TEXT("any");
439 networkConfig.Port = settings.Port;
440 networkConfig.ConnectionsLimit = (uint16)settings.MaxClients;
441 }
442 const ScriptingTypeHandle networkDriverType = Scripting::FindScriptingType(settings.NetworkDriver);
443 if (!networkDriverType)
444 {
445 LOG(Error, "Unknown Network Driver type {0}", String(settings.NetworkDriver));
446 return true;
447 }
448 networkConfig.NetworkDriver = ScriptingObject::NewObject(networkDriverType);
449 NetworkManager::Peer = NetworkPeer::CreatePeer(networkConfig);
450 if (!NetworkManager::Peer)
451 {
452 LOG(Error, "Failed to create Network Peer at {0}:{1}", networkConfig.Address, networkConfig.Port);
453 NetworkManager::State = NetworkConnectionState::Offline;
454 return true;
455 }
456 NetworkManager::Frame = 0;
457
458 return false;
459}
460
461void StopPeer()
462{

Callers 3

StartServerMethod · 0.85
StartClientMethod · 0.85
StartHostMethod · 0.85

Calls 4

FindScriptingTypeFunction · 0.85
NewObjectFunction · 0.85
GetFunction · 0.50
StringClass · 0.50

Tested by

no test coverage detected