MatchmakeReferee 機能を利用するためのクラス。 [詳解]
#include <RendezVous/Services/Jugem/MatchmakeReferee/src/Client/MatchmakeRefereeClient.h>
MatchmakeReferee 機能を利用するためのクラス。
nn::nex::MatchmakeRefereeClient::MatchmakeRefereeClient | ( | ) |
コンストラクタです。
コンストラクタです。
|
virtual |
デストラクタです。
デストラクタです。
qBool nn::nex::MatchmakeRefereeClient::StartRound | ( | ProtocolCallContext * | pContext, |
const MatchmakeRefereeStartRoundParam & | param, | ||
qUnsignedInt64 * | roundId | ||
) |
ラウンドを開始します。
MatchmakeRefereeStartRoundParam::SetPrincipalIds() で指定した人がラウンドの参加者になります。
MatchmakeRefereeStartRoundParam::SetGatheringId() で指定した Gatherig の参加者のみ MatchmakeRefereeStartRoundParam::SetPrincipalIds() に指定できます。
ラウンドの参加者は開始した後に EndRound() もしくは EndRoundWithoutReport() を呼ぶ必要があります。
StartRound() されたことは NotificationEvents::RoundStarted により、ラウンド参加者に通知されます。
MatchmakeRefereeStartRoundParam::SetPrincipalIds() に空もしくは重複したプリンシパル ID を指定すると、 QERROR(MatchmakeReferee, InvalidArgument) になります。
MatchmakeRefereeStartRoundParam::SetPrincipalIds() に指定した人のうち、MatchmakeRefereeStartRoundParam::SetGatheringId() で指定した Gathering の参加者に含まれない人がいた場合、 QERROR(MatchmakeReferee, NotParticipatedGathering) になります。
[in,out] | pContext | 呼び出し情報。 |
[in] | param | 試合開始パラメータ。 |
[out] | roundId | ラウンドID。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::GetStartRoundParam | ( | ProtocolCallContext * | pContext, |
qUnsignedInt64 | roundId, | ||
MatchmakeRefereeStartRoundParam * | param | ||
) |
StartRound() で設定したラウンドのパラメータを取得します。
取得対象のラウンドが存在しない場合、 QERROR(MatchmakeReferee, RoundNotFound) が返ります。
[in,out] | pContext | 呼び出し情報。 |
[in] | roundId | 取得対象のラウンドID。 |
[out] | param | StartRound() で設定したパラメータ。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::EndRound | ( | ProtocolCallContext * | pContext, |
const MatchmakeRefereeEndRoundParam & | endRoundParam | ||
) |
ラウンドを終了し、レポートを送信します。
ラウンドの結果をサーバにレポートします。
ラウンドが終了したときに呼びます。
全員分のレポートが集まるか、切断されるか、最初にレポートが送信されてから1分で締め切り集計処理を行われます。 StartRound() を呼び出してから本 API が最初に呼ばれたときはラウンド参加者に NotificationEvents::FirstRoundReportReceived 通知が届きます。
集計処理が完了すると、 NotificationEvents::RoundSummarized 通知がラウンド参加者に届きます。
送信したレポートの集計処理について、詳しくはプログラミングマニュアルを参照してください。
endRoundParam にセットする personalRoundResults のうち、buffer のサイズが MatchmakeRefereeConstants::STATS_BUFFER_MAX_SIZE を超える場合、 QERROR(MatchmakeReferee, InvalidArgument) が返ります。
endRoundParam にセットする personalRoundResults のサイズがラウンド参加者数と異なる場合、 QERROR(MatchmakeReferee, InvalidArgument) が返ります。
レポート対象のラウンドが存在しない場合、 QERROR(MatchmakeReferee, RoundNotFound) が返ります。
レポート対象のラウンドが既にレポート済みの場合、 QERROR(MatchmakeReferee, AlreadyExists) が返ります。
レポート対象のラウンドが既に集計済みの場合、 QERROR(MatchmakeReferee, RoundArbitrated) が返ります。
レポート対象のラウンドに参加していない場合、 QERROR(MatchmakeReferee, NotParticipatedRound) が返ります。
[in,out] | pContext | 呼び出し情報。 |
[in] | endRoundParam | サーバに送信するレポート。 endRoundParam.personalRoundResults にラウンド参加者全員分の結果をセットします。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::EndRoundWithoutReport | ( | ProtocolCallContext * | pContext, |
qUnsignedInt64 | roundId | ||
) |
レポートを送信せず Round を終了します。
自らラウンドを抜けるときに呼びます。本 API で抜けた場合は他のラウンド参加者が「この人は切断した」と見なすため 切断扱いになります。
負けた後に抜けた人に対しては残ったラウンド参加者が切断のレポートではなく負け扱いのレポートを送る必要があります。 本 API では、集計処理のカウントダウンは開始されません。本 API を呼ばなくても最終的に同じ結果になりますが、 集計時の 1 分のタイムアウトを待つ必要が無くなるので呼ぶようにして下さい。
集計処理が完了すると、 NotificationEvents::RoundSummarized 通知がラウンド参加者に届きます。
レポート対象のラウンドが存在しない場合、 QERROR(MatchmakeReferee, RoundNotFound) が返ります。
レポート対象のラウンドが既にレポート済みの場合、 QERROR(MatchmakeReferee, AlreadyExists) が返ります。
レポート対象のラウンドが既に集計済みの場合、 QERROR(MatchmakeReferee, RoundArbitrated) が返ります。
レポート対象のラウンドに参加していない場合、 QERROR(MatchmakeReferee, NotParticipatedRound) が返ります。
[in,out] | pContext | 呼び出し情報。 |
[in] | roundId | レポート対象のラウンドID |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::GetRoundParticipants | ( | ProtocolCallContext * | pContext, |
qUnsignedInt64 | roundId, | ||
qVector< PrincipalID > * | pids | ||
) |
Round参加者を取得します。
[in,out] | pContext | 呼び出し情報。 |
[in] | roundId | 対象のラウンド ID |
[out] | pids | ラウンド参加者のプリンシパル ID リスト |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::GetNotSummarizedRound | ( | ProtocolCallContext * | pContext, |
qVector< MatchmakeRefereeRound > * | rounds | ||
) |
現在自分が参加していて、かつ未集計のラウンドを取得します。
電源断等をしたあとに重複してラウンドに参加しないようにするためには、この関数を使用して確認して下さい。
[in,out] | pContext | 呼び出し情報。 |
[out] | rounds | 自分が参加中の未集計ラウンド。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::GetRound | ( | ProtocolCallContext * | pContext, |
qUnsignedInt64 | roundId, | ||
MatchmakeRefereeRound * | round | ||
) |
ラウンドを取得します。
集計が完了していれば正規化されたレポートを取得できます。
対象のラウンドが存在しない場合、 QERROR(MatchmakeReferee, RoundNotFound) が返ります。
[in,out] | pContext | 呼び出し情報。 |
[in] | roundId | 対象のラウンドID。 |
[out] | round | ラウンド情報。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::GetStats | ( | ProtocolCallContext * | pContext, |
const MatchmakeRefereeStatsTarget & | target, | ||
MatchmakeRefereeStats * | stats | ||
) |
対象プリンシパル ID の個人統計を取得します。
個人統計が存在しない場合、 QERROR(MatchmakeReferee, StatsNotFound) が返ります。
[in,out] | pContext | 呼び出し情報。 |
[in] | target | 取得対象。 |
[out] | stats | 個人統計。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::GetStats | ( | ProtocolCallContext * | pContext, |
const qVector< MatchmakeRefereeStatsTarget > & | targets, | ||
qVector< MatchmakeRefereeStats > * | stats, | ||
qVector< qResult > * | results | ||
) |
対象プリンシパル ID のプライマリ関連 NEX ユニーク IDの個人統計を取得します。
[in,out] | pContext | 呼び出し情報。 |
[in] | targets | 取得対象。 |
[out] | stats | 個人統計 (取得対象にセットした順で格納されます)。 |
[out] | results | 取得結果: QSUCCESS(MatchmakeReferee, Success) 又は QERROR(MatchmakeReferee, StatsNotFound) (取得対象にセットした順で格納されます)。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::GetStats | ( | ProtocolCallContext * | pContext, |
const MatchmakeRefereeStatsTarget & | target, | ||
qVector< MatchmakeRefereeStats > * | stats | ||
) |
対象プリンシパル ID の全ての関連 NEX ユニーク ID の個人統計を取得します。
個人統計が見つからない場合、 QERROR(MatchmakeReferee, StatsNotFound) が返ります。
[in,out] | pContext | 呼び出し情報。 |
[in] | target | 取得対象。 |
[out] | stats | 個人統計。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::CreateStats | ( | ProtocolCallContext * | pContext, |
const MatchmakeRefereeStatsInitParam & | param | ||
) |
プライマリ関連 NEX ユニーク ID に紐付く個人統計を新規作成します。
個人統計が既に存在する場合、 QERROR(MatchmakeReferee, AlreadyExists) が返ります。
[in,out] | pContext | 呼び出し情報。 |
[in] | param | 作成パラメータ。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::GetOrCreateStats | ( | ProtocolCallContext * | pContext, |
const MatchmakeRefereeStatsInitParam & | param, | ||
MatchmakeRefereeStats * | stats | ||
) |
プライマリ関連 NEX ユニーク ID に紐付く個人統計があればそれを取得し、存在しなければ新規作成してそれを取得します。
[in,out] | pContext | 呼び出し情報。 |
[in] | param | 作成パラメータ。 |
[out] | stats | 個人統計 新規作成した個人統計か、既存の個人統計が格納されます。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
qBool nn::nex::MatchmakeRefereeClient::ResetStats | ( | ProtocolCallContext * | pContext | ) |
プライマリ関連 NEX ユニーク ID に紐づく個人統計を初期状態にします。
未集計のラウンドが存在する場合、QERROR(MatchmakeReferee, RoundNotArbitrated) が返ります。
[in,out] | pContext | 呼び出し情報。 |
true 非同期処理の開始に成功。
false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。
|
inherited |
pCredentials | The default Credentials for this service. |
|
virtualinherited |
サービスを利用するための証明書を登録します。
サービスを利用するための証明書をセットします。 機能を利用する前にセットする必要があります。NgsFacade::Login() の非同期処理に成功後、 NgsFacade::GetCredentials() で取得した証明書を引数に指定してください。 Bind() で証明書をセットした後もう一度 Bind() を呼び出すと証明書を差し替える事ができます。
[in] | pCredentials | サービスにアクセスするための証明書。 |
true 成功。pCredentials が NULL でない場合は必ず成功します。
false pCredentials に NULL が指定された。
|
virtualinherited |
|
inherited |
Bind() された Credentials オブジェクトを取得します。