Aws::GameLift::Model::StartMatchmakingRequest BuildAWSGameLiftStartMatchmakingRequest()

in Gems/AWSGameLift/Code/AWSGameLiftClient/Source/Activity/AWSGameLiftStartMatchmakingActivity.cpp [25:80]


        Aws::GameLift::Model::StartMatchmakingRequest BuildAWSGameLiftStartMatchmakingRequest(
            const AWSGameLiftStartMatchmakingRequest& startMatchmakingRequest)
        {
            Aws::GameLift::Model::StartMatchmakingRequest request;
            if (!startMatchmakingRequest.m_configurationName.empty())
            {
                request.SetConfigurationName(startMatchmakingRequest.m_configurationName.c_str());
            }

            Aws::Vector<Aws::GameLift::Model::Player> players;
            for (const AWSGameLiftPlayer& playerInfo : startMatchmakingRequest.m_players)
            {
                Aws::GameLift::Model::Player player;
                if (!playerInfo.m_playerId.empty())
                {
                    player.SetPlayerId(playerInfo.m_playerId.c_str());
                }

                // Optional attributes
                if (!playerInfo.m_team.empty())
                {
                    player.SetTeam(playerInfo.m_team.c_str());
                }
                if (playerInfo.m_latencyInMs.size() > 0)
                {
                    Aws::Map<Aws::String, int> regionToLatencyMap;
                    AWSGameLiftActivityUtils::ConvertRegionToLatencyMap(playerInfo.m_latencyInMs, regionToLatencyMap);
                    player.SetLatencyInMs(AZStd::move(regionToLatencyMap));
                }
                if (playerInfo.m_playerAttributes.size() > 0)
                {
                    Aws::Map<Aws::String, Aws::GameLift::Model::AttributeValue> playerAttributes;
                    AWSGameLiftActivityUtils::ConvertPlayerAttributes(playerInfo.m_playerAttributes, playerAttributes);
                    player.SetPlayerAttributes(AZStd::move(playerAttributes));
                }
                players.emplace_back(player);
            }
            if (startMatchmakingRequest.m_players.size() > 0)
            {
                request.SetPlayers(players);
            }

            // Optional attributes
            if (!startMatchmakingRequest.m_ticketId.empty())
            {
                request.SetTicketId(startMatchmakingRequest.m_ticketId.c_str());
            }

            AZ_TracePrintf(AWSGameLiftStartMatchmakingActivityName,
                "Built StartMatchmakingRequest with TicketId=%s, ConfigurationName=%s and PlayersCount=%d",
                request.GetTicketId().c_str(),
                request.GetConfigurationName().c_str(),
                request.GetPlayers().size());

            return request;
        }