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

ゲームサーバーとの接続を管理するクラスです。本クラスを継承した NgsFacade クラスを使用してください。 [詳解]

#include <RendezVous/Core/src/Client/RendezVous.h>

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

公開メンバ関数

CredentialsGetCredentials ()
 Credentials (クライアントの証明書情報)を取得します。 [詳解]
 
qBool GetGameServerTime (DateTime *pServerTime) const
 ゲームサーバーの時刻(UTC)を取得します。 [詳解]
 
qBool GetServerTime (DateTime *pServerTime) const
 ゲームサーバーの時刻(UTC)を取得します。 [詳解]
 
qResult IsConnected () const
 ゲームサーバーへの接続状態を取得します。 [詳解]
 
qBool RegisterNotificationEventHandler (NotificationEventHandler *pNotificationEventHandler)
 通知イベントハンドラーを登録します [詳解]
 
qBool Terminate (CallContext *pContext)
 NgsFacade を終了し、deleteできる状態にします。 [詳解]
 
qBool UnregisterNotificationEventHandler (NotificationEventHandler *pNotificationEventHandler)
 登録した通知イベントハンドラーを削除します。 [詳解]
 

静的公開メンバ関数

static void DisableLoginDataCache ()
 ログインに必要な情報のキャッシュをクリアします [詳解]
 
static void EnableLoginDataCache ()
 ログインに必要な情報の一部をキャッシュし、2回目以降のログイン時間を短縮できるようにします [詳解]
 
static qBool IsAbleLoginDataCache ()
 ログインに必要な情報のキャッシュを有効化しているかを返します [詳解]
 

詳解

ゲームサーバーとの接続を管理するクラスです。本クラスを継承した NgsFacade クラスを使用してください。

関数詳解

qBool nn::nex::RendezVous::GetGameServerTime ( DateTime pServerTime) const

ゲームサーバーの時刻(UTC)を取得します。

ゲームサーバーへログイン後に取得可能です。ログアウトしても取得可能です。 ゲームサーバーからログイン時に取得した時間で、現在時刻を算出しています。

ずれの主要因として、ログイン時にゲームサーバーの時刻を取得するときのゲームサーバーの処理遅延、ゲームサーバーからの片道伝送遅延、および、 クライアントの Scheduler::Dispatch() の呼び出し遅延があげられます。 また、ゲームサーバーの時刻は、 NTP による同期の精度しかありませんので、 UTC 時刻に対して、最悪数百 msec 程度の精度となります。 負荷分散のため、端末ごとゲームサーバーの接続先が異なる場合があり、異なるゲームサーバーに接続した場合の時刻の一致も、 保証できません。

時刻の精度は、内部クロックに依存しますので、ログインしてから日単位の長時間経過後の精度は保証できません。

引数
[out]pServerTimeサーバー時刻。
戻り値
処理結果が返ります。


戻り値一覧:

true 成功

false 失敗(ゲームサーバーに一度もログインしていない。もしくは、pServerTimeがNULL)

参照
GetServerTime()
qBool nn::nex::RendezVous::GetServerTime ( DateTime pServerTime) const

ゲームサーバーの時刻(UTC)を取得します。

ゲームサーバーへログイン後に取得可能です。ログアウトしても取得可能です。 ゲームサーバーからログイン時に取得した時間で、現在時刻を算出しています。

ずれの主要因として、ログイン時にゲームサーバーの時刻を取得するときのゲームサーバーの処理遅延、ゲームサーバーからの片道伝送遅延、および、 クライアントの Scheduler::Dispatch() の呼び出し遅延があげられます。 また、ゲームサーバーの時刻は、 NTP による同期の精度しかありませんので、 UTC 時刻に対して、最悪数百 msec 程度の精度となります。 負荷分散のため、端末ごとゲームサーバーの接続先が異なる場合があり、異なるゲームサーバーに接続した場合の時刻の一致も、 保証できません。

時刻の精度は、内部クロックに依存しますので、ログインしてから日単位の長時間経過後の精度は保証できません。

NEX 3.6以降は、 GetGameServerTime()と同等の処理になりました。API互換性のために残してあります。

参照
GetGameServerTime()
qResult nn::nex::BackEndServices::IsConnected ( ) const
inherited

ゲームサーバーへの接続状態を取得します。

ゲームサーバーへの接続状態を取得します。本関数が false を返した場合でも明示的に NgsFacade::Logout() を呼ぶ必要があります。 本関数は毎フレーム呼び出してもパフォーマンスには影響がありません。 ログイン処理が終了するまでtrueとなりません。

ネットワーク接続が切れた場合や、一定時間サーバーとの通信ができない場合にオフラインとなります。

失敗時には、QERROR(RendezVous, ConnectionDisconnected) が返ります。

この値を ErrorCodeConverter::ConvertToNetworkErrorCode() でネットワークエラーコードに変換して、エラー・EULAアプレットに渡すことで、

「通信エラーが発生しました」というメッセージが表示されます。


戻り値一覧:

"QSUCCESS(Core, Success)" ゲームサーバーに接続中(オンライン)

"QERROR(RendezVous, ConnectionDisconnected)" オフライン

qBool nn::nex::BackEndServices::Terminate ( CallContext pContext)
inherited

NgsFacade を終了し、deleteできる状態にします。

本関数はログイン処理中・ログアウト処理中・オンライン・オフラインのいずれの状態であっても呼び出し可能で、 非同期処理が完了するとオフライン状態となることが保証されます。

ログイン処理中・ログアウト処理中・ログイン中のいずれかの状態のとき、 NgsFacade のデストラクタ内で NgsFacade::Terminate が呼ばれ、 オフライン状態に遷移するまでブロックします。NgsFacade を破棄する前に NgsFacade::Terminate を呼ぶことを推奨します。

本関数を呼ぶ前に ServiceClient 継承クラス( MatchmakeExtensionClient , NATTraversalClient など)の Unbind() および delete を実行してください。

ネットワークに繋がっていない場合、非同期処理に時間がかかることがあるため、 Core::SetTerminateImmediately() で強制終了モードを設定しても構いません。

引数
[in,out]pContext呼び出し情報。


戻り値一覧:

true 非同期処理の開始に成功。

false 指定した pContext の状態が CallContext::CallInProgress となっており非同期処理を開始出来ない。 これは他の非同期処理で使用中であることを示します。 プログラミングエラーであるため、このケースはリリースビルド以外では内部で Assert により停止します。

Credentials* nn::nex::BackEndServices::GetCredentials ( )
inherited

Credentials (クライアントの証明書情報)を取得します。

Credentials (クライアントの証明書情報)を取得します。有効な Credentials を取得するには、 NGS にログインしている必要があります。

戻り値
Credentials (クライアントの証明書情報)。ログインしていない場合は NULL が返ります。
static void nn::nex::BackEndServices::EnableLoginDataCache ( )
staticinherited

ログインに必要な情報の一部をキャッシュし、2回目以降のログイン時間を短縮できるようにします

ログインに必要な情報をキャッシュすることで、本関数の呼び出し後、2回目以降のログインでは ログインに要する時間を 2.0 秒 程度短縮します。

NEX の初期化を行った後(Initialize() などを呼び出した後)の初回ログイン前に呼び出してください。

NEX ライブラリを終了する際には DisableLoginDataCache() を呼び出してください

static void nn::nex::BackEndServices::DisableLoginDataCache ( )
staticinherited

ログインに必要な情報のキャッシュをクリアします

EnableLoginDataCache() を呼び出している場合、NEX の終了処理を行う前(Finalize() などを呼び出す前)に本関数を呼び出してください。

static qBool nn::nex::BackEndServices::IsAbleLoginDataCache ( )
staticinherited

ログインに必要な情報のキャッシュを有効化しているかを返します

戻り値
ログインに必要な情報のキャッシュを有効化しているかどうか
戻り値一覧:

true キャッシュが有効化されている

false キャッシュが有効化されていない

qBool nn::nex::BackEndServices::RegisterNotificationEventHandler ( NotificationEventHandler pNotificationEventHandler)
inherited

通知イベントハンドラーを登録します

通知イベントハンドラーを登録します。本関数を実行することで、通知イベントを受信するたびに NotificationEventHandler::ProcessNotificationEvent コールバックが実行されるようになります。 すべての通知イベントを受信するためには、本関数を NgsFacade::Login() 呼び出しよりも前に実行してください。 NgsFacade::Login() 実行後に本関数を実行すると、本関数の実行までの間に送られた通知イベントを受信できないことがあります。 イベントハンドラーは複数個登録できます。

引数
[in]pNotificationEventHandler登録する通知イベントハンドラーへのポインタ。
戻り値一覧:

true 成功。

false 同じイベントハンドラーを複数個登録しようとした。

qBool nn::nex::BackEndServices::UnregisterNotificationEventHandler ( NotificationEventHandler pNotificationEventHandler)
inherited

登録した通知イベントハンドラーを削除します。

引数
[in]pNotificationEventHandler登録を取り消す通知イベントハンドラーへのポインタ。
戻り値一覧:

true 成功。

false 指定したイベントハンドラーが見つからなかった。