gpg::TurnBasedMultiplayerManager

#include <turn_based_multiplayer_manager.h>

提取、修改和创建 TurnBasedMatch 对象。

摘要

公共类型

MatchInboxUICallback typedef
std::function< void(const MatchInboxUIResponse &)>
定义一个可从 ShowMatchInboxUI 接收 MatchInboxUIResponse 的回调。
MultiplayerStatusCallback typedef
std::function< void(MultiplayerStatus)>
定义一个可用于接收 MultiplayerStatus 的回调。
PlayerSelectUICallback typedef
std::function< void(const PlayerSelectUIResponse &)>
定义一个可从 ShowPlayerSelectUI 接收 PlayerSelectUIResponse 的回调。
TurnBasedMatchCallback typedef
std::function< void(const TurnBasedMatchResponse &)>
定义一个回调,用于从某个基于回合的多人游戏操作接收 TurnBasedMatchResponse
TurnBasedMatchesCallback typedef
std::function< void(const TurnBasedMatchesResponse &)>
定义一个回调,用于从某个基于回合的多人游戏操作接收 TurnBasedMatchesResponse

公共静态属性

kAutomatchingParticipant
可传递给接受“下一个参与者”的方法的参与者。

公共函数

AcceptInvitation(const MultiplayerInvitation & invitation, TurnBasedMatchCallback callback)
void
异步接受 MultiplayerInvitation,并通过 TurnBasedMatchCallback 返回结果。
AcceptInvitationBlocking(Timeout timeout, const MultiplayerInvitation & invitation)
AcceptInvitation 的屏蔽版本。
AcceptInvitationBlocking(const MultiplayerInvitation & invitation)
AcceptInvitationBlocking 的过载,默认超时时间为 10 年。
CancelMatch(const TurnBasedMatch & match, MultiplayerStatusCallback callback)
void
异步取消匹配。
CancelMatchBlocking(Timeout timeout, const TurnBasedMatch & match)
CancelMatch 的屏蔽版本。
CancelMatchBlocking(const TurnBasedMatch & match)
CancelMatch 的过载,默认超时时间为 10 年。
ConfirmPendingCompletion(const TurnBasedMatch & match, TurnBasedMatchCallback callback)
void
确认已结束且正在等待本地完成的匹配的结果。
ConfirmPendingCompletionBlocking(Timeout timeout, const TurnBasedMatch & match)
ConfirmPendingCompletion 的阻塞版本。
ConfirmPendingCompletionBlocking(const TurnBasedMatch & match)
ConfirmPendingCompletionBlocking 的过载,其默认超时时间为 10 年。
CreateTurnBasedMatch(const gpg::TurnBasedMatchConfig & config, TurnBasedMatchCallback callback)
void
使用提供的 TurnBasedMatchConfig 异步创建 TurnBasedMatch
CreateTurnBasedMatchBlocking(Timeout timeout, const gpg::TurnBasedMatchConfig & config)
CreateTurnBasedMatch 的阻塞版本。
CreateTurnBasedMatchBlocking(const gpg::TurnBasedMatchConfig & config)
CreateTurnBasedMatchBlocking 的过载,其默认超时时间为 10 年。
DeclineInvitation(const MultiplayerInvitation & invitation)
void
DismissInvitation(const MultiplayerInvitation & invitation)
void
DismissMatch(const TurnBasedMatch & match)
void
关闭 TurnBasedMatch
FetchMatch(const std::string & match_id, TurnBasedMatchCallback callback)
void
按 ID 异步提取特定匹配项。
FetchMatchBlocking(Timeout timeout, const std::string & match_id)
FetchMatch 的屏蔽版本。
FetchMatchBlocking(const std::string & match_id)
FetchMatchBlocking 过载,其默认超时时间为 10 年。
FetchMatches(TurnBasedMatchesCallback callback)
void
异步提取当前玩家的 TurnBasedMatchInvitation 对象。
FetchMatchesBlocking(Timeout timeout)
FetchMatches 的屏蔽版本。
FetchMatchesBlocking()
FetchMatchesBlocking 过载,其默认超时时间为 10 年。
FinishMatchDuringMyTurn(const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results, TurnBasedMatchCallback callback)
void
异步完成指定的匹配。
FinishMatchDuringMyTurnBlocking(Timeout timeout, const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results)
FinishMatchDuringMyTurn 的屏蔽版本。
FinishMatchDuringMyTurnBlocking(const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results)
FinishMatchDuringMyTurnBlocking 的过载,其默认超时时间为 10 年。
LeaveMatchDuringMyTurn(const TurnBasedMatch & match, const MultiplayerParticipant & next_participant, MultiplayerStatusCallback callback)
void
在本地参与者轮到时异步离开比赛。
LeaveMatchDuringMyTurnBlocking(Timeout timeout, const TurnBasedMatch & match, const MultiplayerParticipant & next_participant)
LeaveMatchDuringMyTurn 的屏蔽版本。
LeaveMatchDuringMyTurnBlocking(const TurnBasedMatch & match, const MultiplayerParticipant & next_participant)
LeaveMatchDuringMyTurnBlocking 的过载,其默认超时时间为 10 年。
LeaveMatchDuringTheirTurn(const TurnBasedMatch & match, MultiplayerStatusCallback callback)
void
在其他参与者的回合期间异步离开比赛。
LeaveMatchDuringTheirTurnBlocking(Timeout timeout, const TurnBasedMatch & match)
LeaveMatchDuringTheirTurn 的屏蔽版本。
LeaveMatchDuringTheirTurnBlocking(const TurnBasedMatch & match)
LeaveMatchDuringTheirTurnBlocking 的过载,其默认超时时间为 10 年。
Rematch(const TurnBasedMatch & match, TurnBasedMatchCallback callback)
void
重新匹配状态为 MatchStatus::COMPLETED 的匹配。
RematchBlocking(Timeout timeout, const TurnBasedMatch & match)
重新匹配的屏蔽版本。
RematchBlocking(const TurnBasedMatch & match)
RematchBlocking 过载,其默认超时时间为 10 年。
ShowMatchInboxUI(MatchInboxUICallback callback)
void
异步显示匹配收件箱界面,以便玩家选择匹配或邀请。
ShowMatchInboxUIBlocking(Timeout timeout)
ShowMatchInboxUI 的屏蔽版本。
ShowMatchInboxUIBlocking()
ShowMatchInboxUIBlocking 的过载,其默认超时时间为 10 年。
ShowPlayerSelectUI(uint32_t minimum_players, uint32_t maximum_players, bool allow_automatch, PlayerSelectUICallback callback)
void
异步显示玩家选择界面,让玩家选择要与之对战的其他玩家。
ShowPlayerSelectUIBlocking(Timeout timeout, uint32_t minimum_players, uint32_t maximum_players, bool allow_automatch)
ShowPlayerSelectUI 的屏蔽版本。
ShowPlayerSelectUIBlocking(uint32_t minimum_players, uint32_t maximum_players, bool allow_automatch)
ShowPlayerSelectUIBlocking 的过载,其默认超时时间为 10 年。
SynchronizeData()
void
强制将 TBMP 匹配数据与服务器同步。
TakeMyTurn(const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results, const MultiplayerParticipant & next_participant, TurnBasedMatchCallback callback)
void
异步让本地参与者轮到说话。
TakeMyTurnBlocking(Timeout timeout, const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results, const MultiplayerParticipant & next_participant)
TakeMyTurn 的屏蔽版本。
TakeMyTurnBlocking(const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results, const MultiplayerParticipant & next_participant)
TakeMyTurnBlocking 的过载,其默认超时时间为 10 年。

结构体

gpg::TurnBasedMultiplayerManager::MatchInboxUIResponse

DataResponseStatus 用于 ShowMatchInboxUI 运算。

gpg::TurnBasedMultiplayerManager::PlayerSelectUIResponse

DataResponseStatus 用于 ShowPlayerSelectUI 运算。

gpg::TurnBasedMultiplayerManager::TurnBasedMatchResponse

DataResponseStatus(针对特定 TurnBasedMatch)。

gpg::TurnBasedMultiplayerManager::TurnBasedMatchesResponse

DataResponseStatus 用于 TurnBasedMatches邀请

公共类型

MatchInboxUICallback

std::function< void(const MatchInboxUIResponse &)> MatchInboxUICallback

定义一个可从 ShowMatchInboxUI 接收 MatchInboxUIResponse 的回调。

MultiplayerStatusCallback

std::function< void(MultiplayerStatus)> MultiplayerStatusCallback

定义一个可用于接收 MultiplayerStatus 的回调。

由 LeaveMatch 和 CancelMatch 函数使用。

PlayerSelectUICallback

std::function< void(const PlayerSelectUIResponse &)> PlayerSelectUICallback

定义一个可从 ShowPlayerSelectUI 接收 PlayerSelectUIResponse 的回调。

TurnBasedMatchCallback

std::function< void(const TurnBasedMatchResponse &)> TurnBasedMatchCallback

定义一个回调,用于从某个基于回合的多人游戏操作接收 TurnBasedMatchResponse

TurnBasedMatchesCallback

std::function< void(const TurnBasedMatchesResponse &)> TurnBasedMatchesCallback

定义一个回调,用于从某个基于回合的多人游戏操作接收 TurnBasedMatchesResponse

公共静态属性

kAutomatchingParticipant

const MultiplayerParticipant kAutomatchingParticipant

一个参与者,可传递给接受“下一个参与者”的方法。

这会导致该方法通过自动匹配选择下一位参与者。只有当相关比赛的 TurnBasedMatch::AutomatchingSlotsAvailable 大于 0 时,才能将 kAutomatchingParticipant 传递给函数。

公共函数

AcceptInvitation

void AcceptInvitation(
  const MultiplayerInvitation & invitation,
  TurnBasedMatchCallback callback
)

异步接受 MultiplayerInvitation,并通过 TurnBasedMatchCallback 返回结果。

如果操作成功,则通过回调返回的 TurnBasedMatch 处于 TurnBasedMatchState::MY_TURN 状态。

AcceptInvitationBlocking

TurnBasedMatchResponse AcceptInvitationBlocking(
  Timeout timeout,
  const MultiplayerInvitation & invitation
)

AcceptInvitation 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

AcceptInvitationBlocking

TurnBasedMatchResponse AcceptInvitationBlocking(
  const MultiplayerInvitation & invitation
)

AcceptInvitationBlocking 的过载,默认超时时间为 10 年。

CancelMatch

void CancelMatch(
  const TurnBasedMatch & match,
  MultiplayerStatusCallback callback
)

异步取消匹配。

通过 MultiplayerStatusCallback 返回的状态表示操作是否成功。只有当比赛状态为 INVITED、THEIR_TURN 或 MY_TURN 时,才能使用此函数。

CancelMatchBlocking

MultiplayerStatus CancelMatchBlocking(
  Timeout timeout,
  const TurnBasedMatch & match
)

CancelMatch 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

CancelMatchBlocking

MultiplayerStatus CancelMatchBlocking(
  const TurnBasedMatch & match
)

CancelMatch 的过载,默认超时时间为 10 年。

ConfirmPendingCompletion

void ConfirmPendingCompletion(
  const TurnBasedMatch & match,
  TurnBasedMatchCallback callback
)

确认已结束且正在等待本地完成的匹配的结果。

只有在 TurnBasedMatch::Status() 返回 MatchStatus::PENDING_COMPLETION 时,才能调用此函数。

详细信息
参数
match
要确认完成的匹配。
callback
接收 TurnBasedMatchResponse 的回调。

ConfirmPendingCompletionBlocking

TurnBasedMatchResponse ConfirmPendingCompletionBlocking(
  Timeout timeout,
  const TurnBasedMatch & match
)

ConfirmPendingCompletion 的阻塞版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

ConfirmPendingCompletionBlocking

TurnBasedMatchResponse ConfirmPendingCompletionBlocking(
  const TurnBasedMatch & match
)

ConfirmPendingCompletionBlocking 的过载,其默认超时时间为 10 年。

CreateTurnBasedMatch

void CreateTurnBasedMatch(
  const gpg::TurnBasedMatchConfig & config,
  TurnBasedMatchCallback callback
)

使用提供的 TurnBasedMatchConfig 异步创建 TurnBasedMatch

如果创建成功,此函数将通过提供的 TurnBasedMatchCallback 返回 TurnBasedMatch。新创建的 TurnBasedMatch 始终从 TurnBasedMatchState::MY_TURN 状态开始。

CreateTurnBasedMatchBlocking

TurnBasedMatchResponse CreateTurnBasedMatchBlocking(
  Timeout timeout,
  const gpg::TurnBasedMatchConfig & config
)

CreateTurnBasedMatch 的阻塞版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

CreateTurnBasedMatchBlocking

TurnBasedMatchResponse CreateTurnBasedMatchBlocking(
  const gpg::TurnBasedMatchConfig & config
)

CreateTurnBasedMatchBlocking 的过载,其默认超时时间为 10 年。

DeclineInvitation

void DeclineInvitation(
  const MultiplayerInvitation & invitation
)

MultiplayerInvitation 降级为 TurnBasedMatch

这样做会取消其他参与者的对局,并从本地玩家的设备中移除对局。

DismissInvitation

void DismissInvitation(
  const MultiplayerInvitation & invitation
)

MultiplayerInvitation 关闭为 TurnBasedMatch

这不会更改其他参与者的 TurnBasedMatch 的公开状态,但会从本地播放器的设备中移除 TurnBasedMatch

DismissMatch

void DismissMatch(
  const TurnBasedMatch & match
)

关闭 TurnBasedMatch

这不会更改其他参与者的 TurnBasedMatch 的可见状态,但会从本地播放器的设备中移除 TurnBasedMatch

FetchMatch

void FetchMatch(
  const std::string & match_id,
  TurnBasedMatchCallback callback
)

按 ID 异步提取特定匹配项。

此操作的结果会通过 TurnBasedMatchCallback 返回。

FetchMatchBlocking

TurnBasedMatchResponse FetchMatchBlocking(
  Timeout timeout,
  const std::string & match_id
)

FetchMatch 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

FetchMatchBlocking

TurnBasedMatchResponse FetchMatchBlocking(
  const std::string & match_id
)

FetchMatchBlocking 过载,其默认超时时间为 10 年。

FetchMatches

void FetchMatches(
  TurnBasedMatchesCallback callback
)

异步提取当前玩家的 TurnBasedMatchInvitation 对象。

系统会返回所有有效匹配项,以及最多 10 项已完成的匹配项。

FetchMatchesBlocking

TurnBasedMatchesResponse FetchMatchesBlocking(
  Timeout timeout
)

FetchMatches 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

FetchMatchesBlocking

TurnBasedMatchesResponse FetchMatchesBlocking()

FetchMatchesBlocking 过载,其默认超时时间为 10 年。

FinishMatchDuringMyTurn

void FinishMatchDuringMyTurn(
  const TurnBasedMatch & match,
  std::vector< uint8_t > match_data,
  const ParticipantResults & results,
  TurnBasedMatchCallback callback
)

异步完成指定的匹配。

在对局的最后一回合中,可以使用此方法,而不是使用 TakeMyTurn。允许调用方为 match_data 指定一个最终值,以及为 ParticipantResults 指定一组最终值。此操作完成后,系统会通过提供的 TurnBasedMatchCallback. 返回更新后的匹配项。只有在 TurnBasedMatch::Status() 返回 MatchStatus::MY_TURN. 时才能调用此函数

详细信息
参数
match
比赛结束。
match_data
一个数据 blob,表示匹配的最终状态。
results
比赛中每位选手的任何结果。请注意,这些结果不得与之前通过 TakeTurn 指定的任何结果相矛盾。尝试为玩家设置不同的结果会导致 ERROR_INVALID_RESULTS
callback
接收 TurnBasedMatchResponse 的回调。

FinishMatchDuringMyTurnBlocking

TurnBasedMatchResponse FinishMatchDuringMyTurnBlocking(
  Timeout timeout,
  const TurnBasedMatch & match,
  std::vector< uint8_t > match_data,
  const ParticipantResults & results
)

FinishMatchDuringMyTurn 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

FinishMatchDuringMyTurnBlocking

TurnBasedMatchResponse FinishMatchDuringMyTurnBlocking(
  const TurnBasedMatch & match,
  std::vector< uint8_t > match_data,
  const ParticipantResults & results
)

FinishMatchDuringMyTurnBlocking 的过载,其默认超时时间为 10 年。

LeaveMatchDuringMyTurn

void LeaveMatchDuringMyTurn(
  const TurnBasedMatch & match,
  const MultiplayerParticipant & next_participant,
  MultiplayerStatusCallback callback
)

在本地参与者轮到时异步离开比赛。

通过 TurnBasedMatchCallback 返回的响应包含本地玩家离开后的匹配状态。如果因退出而导致比赛参与人数少于 2 人,则比赛会被取消。match.Status() 必须返回 MatchStatus::MY_TURN,此函数才能使用。

详细信息
参数
match
要退出的比赛。
next_participant
下一位轮到发言的参与者。TurnBasedMultiplayerManager::kAutomatchingParticipant 可用于指定应通过自动匹配选择下一位参与者。
callback
接收 TurnBasedMatchResponse 的回调

LeaveMatchDuringMyTurnBlocking

MultiplayerStatus LeaveMatchDuringMyTurnBlocking(
  Timeout timeout,
  const TurnBasedMatch & match,
  const MultiplayerParticipant & next_participant
)

LeaveMatchDuringMyTurn 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

LeaveMatchDuringMyTurnBlocking

MultiplayerStatus LeaveMatchDuringMyTurnBlocking(
  const TurnBasedMatch & match,
  const MultiplayerParticipant & next_participant
)

LeaveMatchDuringMyTurnBlocking 的过载,其默认超时时间为 10 年。

LeaveMatchDuringTheirTurn

void LeaveMatchDuringTheirTurn(
  const TurnBasedMatch & match,
  MultiplayerStatusCallback callback
)

在其他参与者的回合期间异步离开比赛。

通过 MultiplayerStatusCallback 返回的响应包含本地参与者是否成功离开了比赛。如果因对手退出而导致比赛参与人数少于两人,则比赛会被取消。match.Status() 必须返回 MatchStatus::THEIR_TURN,此函数才能使用。

LeaveMatchDuringTheirTurnBlocking

MultiplayerStatus LeaveMatchDuringTheirTurnBlocking(
  Timeout timeout,
  const TurnBasedMatch & match
)

LeaveMatchDuringTheirTurn 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

LeaveMatchDuringTheirTurnBlocking

MultiplayerStatus LeaveMatchDuringTheirTurnBlocking(
  const TurnBasedMatch & match
)

LeaveMatchDuringTheirTurnBlocking 的过载,其默认超时时间为 10 年。

再玩一局

void Rematch(
  const TurnBasedMatch & match,
  TurnBasedMatchCallback callback
)

重新匹配状态为 MatchStatus::COMPLETED 的匹配。

如果可以重新匹配,TurnBasedMatchCallback 会收到新的匹配。

详细信息
参数
match
要进行再匹配的比赛。
callback
用于接收 TurnBasedMatchResponse 的回调。

RematchBlocking

TurnBasedMatchResponse RematchBlocking(
  Timeout timeout,
  const TurnBasedMatch & match
)

重新匹配的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

RematchBlocking

TurnBasedMatchResponse RematchBlocking(
  const TurnBasedMatch & match
)

RematchBlocking 过载,其默认超时时间为 10 年。

ShowMatchInboxUI

void ShowMatchInboxUI(
  MatchInboxUICallback callback
)

异步显示匹配收件箱界面,以便玩家选择匹配或邀请。

完成后,系统会通过 MatchInboxUICallback 返回所选的匹配项或邀请。

ShowMatchInboxUIBlocking

MatchInboxUIResponse ShowMatchInboxUIBlocking(
  Timeout timeout
)

ShowMatchInboxUI 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

ShowMatchInboxUIBlocking

MatchInboxUIResponse ShowMatchInboxUIBlocking()

ShowMatchInboxUIBlocking 的过载,其默认超时时间为 10 年。

ShowPlayerSelectUI

void ShowPlayerSelectUI(
  uint32_t minimum_players,
  uint32_t maximum_players,
  bool allow_automatch,
  PlayerSelectUICallback callback
)

异步显示玩家选择界面,让玩家选择要与之对战的其他玩家。

完成后,系统会通过 PlayerSelectUICallback 返回所选玩家。

ShowPlayerSelectUIBlocking

PlayerSelectUIResponse ShowPlayerSelectUIBlocking(
  Timeout timeout,
  uint32_t minimum_players,
  uint32_t maximum_players,
  bool allow_automatch
)

ShowPlayerSelectUI 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

ShowPlayerSelectUIBlocking

PlayerSelectUIResponse ShowPlayerSelectUIBlocking(
  uint32_t minimum_players,
  uint32_t maximum_players,
  bool allow_automatch
)

ShowPlayerSelectUIBlocking 的过载,其默认超时时间为 10 年。

SynchronizeData

void SynchronizeData()

强制将 TBMP 匹配数据与服务器同步。

收到新数据会触发 OnTurnBasedMatchEventCallbackOnMultiplayerInvitationReceivedCallback

TakeMyTurn

void TakeMyTurn(
  const TurnBasedMatch & match,
  std::vector< uint8_t > match_data,
  const ParticipantResults & results,
  const MultiplayerParticipant & next_participant,
  TurnBasedMatchCallback callback
)

异步让本地参与者轮到说话。

轮到自己时,参与者可以为 match_data 指定一个新值,以及一组 ParticipantResults。回合结束后,系统会通过 TurnBasedMatchCallback 返回更新后的匹配项。仅当 TurnBasedMatch::Status()MatchStatus::MY_TURN 时才能调用此函数。

详细信息
参数
match
相应转弯发生的比赛。
match_data
要发送给下一位参与者的一块数据。
results
目前对比赛的任何已知结果。请注意,您只能为给定玩家指定一次结果。尝试为玩家设置不同的结果会导致 ERROR_INVALID_RESULTS
next_participant
下一位出题者。TurnBasedMultiplayerManager::kAutomatchingParticipant 可用于指定应通过自动匹配选择下一位参与者。
callback
接收 TurnBasedMatchResponse 的回调。

TakeMyTurnBlocking

TurnBasedMatchResponse TakeMyTurnBlocking(
  Timeout timeout,
  const TurnBasedMatch & match,
  std::vector< uint8_t > match_data,
  const ParticipantResults & results,
  const MultiplayerParticipant & next_participant
)

TakeMyTurn 的屏蔽版本。

允许调用方指定超时时间(以毫秒为单位)。指定时间过后,该函数会返回 ERROR_TIMEOUT

TakeMyTurnBlocking

TurnBasedMatchResponse TakeMyTurnBlocking(
  const TurnBasedMatch & match,
  std::vector< uint8_t > match_data,
  const ParticipantResults & results,
  const MultiplayerParticipant & next_participant
)

TakeMyTurnBlocking 的过载,其默认超时时间为 10 年。