ネットワークセルフテスト情報を提供するクラス。
[詳解]
#include <NetworkTestInfo.h>
ネットワークセルフテスト情報を提供するクラス。
- 参照
- Network
このクラスのインスタンスをアプリ側で直接生成することはできない。 Network クラスのメンバ関数 Network::getPowerOnTestInfo や Network::getTestInfo から取得すること。
AM Daemon がサポートするのは全タイトル共通で利用可能なテスト項目のみであり、 タイトル固有のテスト項目はタイトル側で実装する必要がある。
- ネットワークセルフテスト項目について
- テスト項目は NetworkTestItem 列挙により定義される。
- 列挙値の定義順に沿って順番にテスト処理が行われる。
- メンバ関数 isAvailableItem が false を返す項目はテスト不可能であるため、 アプリでは項目自体が存在しないものとして扱うこと。(画面表示しない等)
- 各項目がテスト可能であるか否かは、 Daemonプロセスの設定ファイルの記述内容により一意に定まる。
- テスト可能な項目の一覧はメンバ関数 getAvailableItems で取得できる。
- テスト実施中は、各テスト項目について項目名とその状態を横に並べて表示すること。
- パワーオンセルフテスト
- Daemonプロセスは、起動時およびゲームテストモードから抜けたタイミングで パワーオンセルフテストを自動的に開始する。
- パワーオンセルフテストが完了するか、ゲームテストモードに入るまで、 メンバ関数 isRunning は true を返し続ける。
- テスト項目処理が失敗した場合は次のように処理される。
- リトライによる復旧が可能である場合、Daemonプロセス側でリトライ処理が行われる。 リトライするのは失敗したテスト項目からであり、 既に成功済みのテスト項目はリトライされず正常完了状態のままとなる。
- リトライによる復旧が不可能である場合、以降の項目はすべて "N/A" となり、 パワーオンセルフテストは完了となる。
- リトライ処理の関係上、メンバ関数 isBusy が true を返す状態であっても メンバ関数 getResult が TestResult::Bad を返す場合がある。
- ゲームテストモードに入った場合は処理が中断される。
- ネットワークテスト
- ゲームテストモード中であれば、 Network クラスのメンバ関数 Network::startTest によってネットワークテストを開始することができる。
- テスト項目処理が失敗した場合、それ以降の項目はすべて "N/A" となる。 パワーオンセルフテストとは異なり、リトライ処理は行われない。
- テストの実施中に再度テスト開始要求を行った場合、強制的にリスタートされる。
- ゲームテストモードを抜けた場合は処理が中断される。
- ネットワークエラー情報
- いずれかのテスト項目に失敗した場合、内部にネットワークエラー情報が設定される。 メンバ関数 getErrorInfo で情報を取得することができる。
- 失敗したテスト項目がゲーム進行不能レベルのものであるか否かはアプリ依存である。 もしゲーム進行不能レベルである場合、何らかのエラー表示を行うことになるが、 その際にこのネットワークエラー情報を用いることができる。
- パワーオンセルフテストにおいて、失敗したテスト項目がリトライ処理によって 成功した場合、ネットワークエラー情報はリセットされる。
amdaemon::NetworkTestInfo::NetworkTestInfo |
( |
InnerIndexHolder |
| ) |
|
|
explicit |
コンストラクタ。
- 覚え書き
- アプリ側からは利用できない。
static const wchar_t* amdaemon::NetworkTestInfo::getBusyStatusText |
( |
bool |
blink = true | ) |
|
|
static |
テスト項目のビジー状態表示用文字列を取得する。
- 引数
-
[in] | blink | 文字列 "CHECK" と空文字列を一定時間毎に交互に返させる場合は true (既定値)。 文字列 "CHECK" のみを返させる場合は false 。 |
- 戻り値
- ビジー状態表示用文字列。 "CHECK" または空文字列。
タイトル固有テスト項目の処理中に表示する文字列として利用できる。
bool amdaemon::NetworkTestInfo::isRunning |
( |
| ) |
const |
テストを実施中であるか否かを取得する。
- 戻り値
-
true | 実施中である場合。 |
false | 実施中ではない場合。 |
bool amdaemon::NetworkTestInfo::isCompleted |
( |
| ) |
const |
テストを完了済みであるか否かを取得する。
- 戻り値
-
true | 完了済みである場合。 |
false | 未完了であるか、処理が中断された場合。 |
テストが完了すると、テスト自体の成否は問わず true を返すようになる。 即ち、ゲームテストモード状態の切替により処理が中断されてさえいなければ、 メンバ関数 isRunning の戻り値とは逆の値を返す。 処理が中断された場合にはどちらの関数も false を返す。
この関数が true を返す場合でも、テストがすべて成功しているとは限らない。 いずれかの項目で失敗した場合、メンバ関数 getErrorInfo にエラー情報が設定される。
bool amdaemon::NetworkTestInfo::isAvailableItem |
( |
NetworkTestItem |
item | ) |
const |
テスト項目をテスト可能であるか否かを取得する。
- 引数
-
- 戻り値
-
true | テスト可能である場合。 |
false | テスト不可能である場合。 |
- 例外
-
現在のネットワーク状態は考慮せず、単にテスト可能であるか否かを返す。 Daemonプロセスの設定ファイルの記述内容により戻り値は一意に定まる。
例えばALL.NetおよびAimeを利用しないタイトルでは ALL.NetサーバやAimeサーバとの疎通チェックを行うことはできないため、 isAvailableItem(NetworkTestItem::Aime) は常に false を返す。
一方、ALL.NetおよびAimeを利用するタイトルであれば、 たとえ前提となるALL.Netサーバとの疎通チェックに失敗していようがいまいが isAvailableItem(NetworkTestItem::Aime) は常に true を返す。
この関数が false を返すテスト項目について、 アプリでは項目自体が存在しないものとして扱うこと。(画面表示しない等)
std::size_t amdaemon::NetworkTestInfo::getAvailableItemCount |
( |
| ) |
const |
テスト可能なテスト項目数を取得する。
- 戻り値
- テスト可能なテスト項目数。
NetworkTestItem amdaemon::NetworkTestInfo::getAvailableItem |
( |
std::size_t |
index | ) |
const |
テスト可能なテスト項目を取得する。
- 引数
-
- 戻り値
- テスト可能なテスト項目。
- 例外
-
std::vector<NetworkTestItem> amdaemon::NetworkTestInfo::getAvailableItems |
( |
| ) |
const |
|
inline |
テスト可能なテスト項目配列を取得する。
- 戻り値
- テスト可能なテスト項目配列。
アプリではこの関数が返すテスト項目のみを表示すること。
テスト項目が処理完了済みであるか否かを取得する。
- 引数
-
- 戻り値
-
true | 処理完了済みである場合。 |
false | 処理完了済みではない場合。 |
- 例外
-
条件式 (getState(item) == NetworkTestState::Done) の結果を返す。
メンバ関数 isAvailableItem が false を返すテスト項目の場合、 この関数の戻り値は未定義となる。
テスト項目の処理結果を取得する。
- 引数
-
- 戻り値
- 処理結果。処理未完了である場合は TestResult::None 。
- 例外
-
テストが開始されるとすべての値が TestResult::None に初期化される。 その後はメンバ関数 getState の戻り値により下記のようになる。
- 実施状態が NetworkTestState::None である場合
-
- 実施状態が NetworkTestState::Busy である場合
-
- 実施状態が NetworkTestState::Done である場合、
-
ただし、メンバ関数 isAvailableItem が false を返すテスト項目の場合、 この関数の戻り値は未定義となる。
std::uint32_t amdaemon::NetworkTestInfo::getHops |
( |
| ) |
const |
const wchar_t* amdaemon::NetworkTestInfo::getStatusText |
( |
NetworkTestItem |
item, |
|
|
bool |
blinkBusy = true |
|
) |
| const |
テスト項目の状態表示用文字列を取得する。
- 引数
-
[in] | item | テスト項目。 |
[in] | blinkBusy | テスト項目実施中に文字列 "CHECK" と空文字列を一定時間毎に交互に返させる場合は true (既定値)。 文字列 "CHECK" のみを返させる場合は false 。 |
- 戻り値
- 状態表示用文字列。
- 例外
-
指定したテスト項目について、下記の値を返す。
- テスト項目未実施の場合、空文字列を返す。
- テスト項目実施中の場合(メンバ関数 isBusy が true を返す)、下記のようになる。
- 引数 blinkBusy が true (既定値)の場合、 文字列 "CHECK" と空文字列を約 0.5 秒おきに切り替えて返す。
- 引数 blinkBusy が false の場合、常に文字列 "CHECK" を返す。
- テスト項目実施済みの場合(メンバ関数 isDone が true を返す)、下記のようになる。
関数 toString(NetworkTestItem) で取得した項目名と並べて表示することを想定している。
表示内容は ALL.Net Programmer's Manual を基にしているが、 テスト結果が "BAD" だった場合のエラー表示についてはこの関数では対応しない。 エラー情報はメンバ関数 getErrorInfo より取得すること。
const ErrorInfo& amdaemon::NetworkTestInfo::getErrorInfo |
( |
| ) |
const |
ネットワークエラー情報インスタンスを取得する。
- 戻り値
- ネットワークエラー情報インスタンス。
いずれかのテスト項目に失敗した場合、エラー情報が設定される。 ただしテスト項目 NetworkTestItem::Hops については設定されない。
失敗したテスト項目がゲーム進行不能レベルのものである場合、 アプリはこのエラー情報を表示して進行不能であることを示すことができる。
- パワーオンセルフテストでは、リトライ処理によりテスト項目が成功した場合、 自動的にエラー情報がクリアされる。
- ネットワークテストでは、再度テストを開始するまでクリアされない。
このクラス詳解は次のファイルから抽出されました: