void AWSGameLiftServerManager::InitializeGameLiftServerSDK()

in Gems/AWSGameLift/Code/AWSGameLiftServer/Source/AWSGameLiftServerManager.cpp [489:546]


    void AWSGameLiftServerManager::InitializeGameLiftServerSDK()
    {
        if (m_serverSDKInitialized)
        {
            AZ_Error(AWSGameLiftServerManagerName, false, AWSGameLiftServerSDKAlreadyInitErrorMessage);
            return;
        }

        Aws::GameLift::Server::Model::ServerParameters serverParameters;

        if (sv_gameliftAnywhereEnabled)
        {
            if (auto webSocketUrl = static_cast<AZ::CVarFixedString>(sv_gameliftAnywhereWebSocketUrl); !webSocketUrl.empty())
            {
                serverParameters.SetWebSocketUrl(webSocketUrl.c_str());
            }
            if (auto authToken = static_cast<AZ::CVarFixedString>(sv_gameliftAnywhereAuthToken); !authToken.empty())
            {
                serverParameters.SetAuthToken(authToken.c_str());
            }
            if (auto fleetId = static_cast<AZ::CVarFixedString>(sv_gameliftAnywhereFleetId); !fleetId.empty())
            {
                serverParameters.SetFleetId(fleetId.c_str());
            }
            if (auto hostId = static_cast<AZ::CVarFixedString>(sv_gameliftAnywhereHostId); !hostId.empty())
            {
                serverParameters.SetHostId(hostId.c_str());
            }
            if (auto processId = static_cast<AZ::CVarFixedString>(sv_gameliftAnywhereProcessId); !processId.empty())
            {
                serverParameters.SetProcessId(processId.c_str());
            }
            else
            {
                // If ProcessId isn't defined, provide a unique string by default.
                AZStd::string defaultProcessId = AZStd::string::format("ProcessId_%i", aznumeric_cast<int>(std::time(nullptr)));
                serverParameters.SetProcessId(defaultProcessId.c_str());
                AZ_Trace(
                    AWSGameLiftServerManagerName, "Generated default AWS GameLift ProcessId value: %s\n", defaultProcessId.c_str());
            }
        }

        AZ_Trace(AWSGameLiftServerManagerName, "Initiating AWS GameLift Server SDK ...\n");
        Aws::GameLift::Server::InitSDKOutcome initOutcome = m_gameLiftServerSDKWrapper->InitSDK(serverParameters);
        if (initOutcome.IsSuccess())
        {
            AZ_Trace(AWSGameLiftServerManagerName, "InitSDK request against Amazon GameLift service is complete.\n");
        }
        else
        {
            AZ_Trace(AWSGameLiftServerManagerName, "InitSDK request against Amazon GameLift service failed.\n");
        }

        m_serverSDKInitialized = initOutcome.IsSuccess();

        AZ_Error(AWSGameLiftServerManagerName, m_serverSDKInitialized,
            AWSGameLiftServerInitSDKErrorMessage, initOutcome.GetError().GetErrorMessage().c_str());
    }