CTR NEX API Reference
nn::nex::MatchmakeRefereeClient クラス

MatchmakeReferee 機能を利用するためのクラス。 [詳解]

#include <RendezVous/Services/Jugem/MatchmakeReferee/src/Client/MatchmakeRefereeClient.h>

+ nn::nex::MatchmakeRefereeClient の継承関係図

公開メンバ関数

 MatchmakeRefereeClient ()
 コンストラクタです。 [詳解]
 
virtual ~MatchmakeRefereeClient ()
 デストラクタです。 [詳解]
 
virtual qBool Bind (Credentials *pCredentials)
 サービスを利用するための証明書を登録します。 [詳解]
 
qBool CreateStats (ProtocolCallContext *pContext, const MatchmakeRefereeStatsInitParam &param)
 プライマリ関連 NEX ユニーク ID に紐付く個人統計を新規作成します。 [詳解]
 
qBool EndRound (ProtocolCallContext *pContext, const MatchmakeRefereeEndRoundParam &endRoundParam)
 ラウンドを終了し、レポートを送信します。 [詳解]
 
qBool EndRoundWithoutReport (ProtocolCallContext *pContext, qUnsignedInt64 roundId)
 レポートを送信せず Round を終了します。 [詳解]
 
CredentialsGetCredentials () const
 Bind() された Credentials オブジェクトを取得します。 [詳解]
 
qBool GetNotSummarizedRound (ProtocolCallContext *pContext, qVector< MatchmakeRefereeRound > *rounds)
 現在自分が参加していて、かつ未集計のラウンドを取得します。 [詳解]
 
qBool GetOrCreateStats (ProtocolCallContext *pContext, const MatchmakeRefereeStatsInitParam &param, MatchmakeRefereeStats *stats)
 プライマリ関連 NEX ユニーク ID に紐付く個人統計があればそれを取得し、存在しなければ新規作成してそれを取得します。 [詳解]
 
qBool GetRound (ProtocolCallContext *pContext, qUnsignedInt64 roundId, MatchmakeRefereeRound *round)
 ラウンドを取得します。 [詳解]
 
qBool GetRoundParticipants (ProtocolCallContext *pContext, qUnsignedInt64 roundId, qVector< PrincipalID > *pids)
 Round参加者を取得します。 [詳解]
 
qBool GetStartRoundParam (ProtocolCallContext *pContext, qUnsignedInt64 roundId, MatchmakeRefereeStartRoundParam *param)
 StartRound() で設定したラウンドのパラメータを取得します。 [詳解]
 
qBool GetStats (ProtocolCallContext *pContext, const MatchmakeRefereeStatsTarget &target, MatchmakeRefereeStats *stats)
 対象プリンシパル ID の個人統計を取得します。 [詳解]
 
qBool GetStats (ProtocolCallContext *pContext, const qVector< MatchmakeRefereeStatsTarget > &targets, qVector< MatchmakeRefereeStats > *stats, qVector< qResult > *results)
 対象プリンシパル ID のプライマリ関連 NEX ユニーク IDの個人統計を取得します。 [詳解]
 
qBool GetStats (ProtocolCallContext *pContext, const MatchmakeRefereeStatsTarget &target, qVector< MatchmakeRefereeStats > *stats)
 対象プリンシパル ID の全ての関連 NEX ユニーク ID の個人統計を取得します。 [詳解]
 
qBool ResetStats (ProtocolCallContext *pContext)
 プライマリ関連 NEX ユニーク ID に紐づく個人統計を初期状態にします。 [詳解]
 
void SetDefaultCredentials (Credentials *pCredentials)
 
qBool StartRound (ProtocolCallContext *pContext, const MatchmakeRefereeStartRoundParam &param, qUnsignedInt64 *roundId)
 ラウンドを開始します。 [詳解]
 
virtual qBool Unbind ()
 証明書の登録を解除します。 [詳解]
 

詳解

MatchmakeReferee 機能を利用するためのクラス。

構築子と解体子

nn::nex::MatchmakeRefereeClient::MatchmakeRefereeClient ( )

コンストラクタです。

コンストラクタです。

virtual 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]paramStartRound() で設定したパラメータ。


戻り値一覧:

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 により停止します。

void nn::nex::ServiceClient::SetDefaultCredentials ( Credentials pCredentials)
inherited
引数
pCredentialsThe default Credentials for this service.
注釈
It is up to each ServiceClient to use this method to set the current Credentials in each of his protocols.
virtual qBool nn::nex::ServiceClient::Bind ( Credentials pCredentials)
virtualinherited

サービスを利用するための証明書を登録します。

サービスを利用するための証明書をセットします。 機能を利用する前にセットする必要があります。NgsFacade::Login() の非同期処理に成功後、 NgsFacade::GetCredentials() で取得した証明書を引数に指定してください。 Bind() で証明書をセットした後もう一度 Bind() を呼び出すと証明書を差し替える事ができます。

引数
[in]pCredentialsサービスにアクセスするための証明書。


戻り値一覧:

true 成功。pCredentials が NULL でない場合は必ず成功します。

false pCredentials に NULL が指定された。

virtual qBool nn::nex::ServiceClient::Unbind ( )
virtualinherited

証明書の登録を解除します。

Bind() でセットされた証明書を解除します。Bind() が呼び出されていなくても本関数を呼び出すことができます。 本オブジェクトを破棄する際に自動的に Unbind() と同等の処理行われるため、明示的に呼び出す必要はありません。


戻り値一覧:

true 証明書の解除を行った。

false Bind() が行われていないため何も行わなかった。

Credentials* nn::nex::ServiceClient::GetCredentials ( ) const
inherited

Bind() された Credentials オブジェクトを取得します。

戻り値
Bind() された Credentials オブジェクト。Bind() されていない場合、NULL を返します。