AM Daemon ライブラリリファレンス
公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
amdaemon::NetworkTestInfo クラス

ネットワークセルフテスト情報を提供するクラス。 [詳解]

#include <NetworkTestInfo.h>

公開メンバ関数

 NetworkTestInfo (InnerIndexHolder)
 コンストラクタ。 [詳解]
 
bool isRunning () const
 テストを実施中であるか否かを取得する。 [詳解]
 
bool isCompleted () const
 テストを完了済みであるか否かを取得する。 [詳解]
 
bool isAvailableItem (NetworkTestItem item) const
 テスト項目をテスト可能であるか否かを取得する。 [詳解]
 
std::size_t getAvailableItemCount () const
 テスト可能なテスト項目数を取得する。 [詳解]
 
NetworkTestItem getAvailableItem (std::size_t index) const
 テスト可能なテスト項目を取得する。 [詳解]
 
std::vector< NetworkTestItemgetAvailableItems () const
 テスト可能なテスト項目配列を取得する。 [詳解]
 
NetworkTestState getState (NetworkTestItem item) const
 テスト項目の実施状態を取得する。 [詳解]
 
bool isBusy (NetworkTestItem item) const
 テスト項目を処理中であるか否かを取得する。 [詳解]
 
bool isDone (NetworkTestItem item) const
 テスト項目が処理完了済みであるか否かを取得する。 [詳解]
 
TestResult getResult (NetworkTestItem item) const
 テスト項目の処理結果を取得する。 [詳解]
 
std::uint32_t getHops () const
 ホップ数を取得する。 [詳解]
 
const wchar_t * getStatusText (NetworkTestItem item, bool blinkBusy=true) const
 テスト項目の状態表示用文字列を取得する。 [詳解]
 
const ErrorInfogetErrorInfo () const
 ネットワークエラー情報インスタンスを取得する。 [詳解]
 

静的公開メンバ関数

static const wchar_t * getBusyStatusText (bool blink=true)
 テスト項目のビジー状態表示用文字列を取得する。 [詳解]
 

詳解

ネットワークセルフテスト情報を提供するクラス。

参照
Network

このクラスのインスタンスをアプリ側で直接生成することはできない。 Network クラスのメンバ関数 Network::getPowerOnTestInfoNetwork::getTestInfo から取得すること。

AM Daemon がサポートするのは全タイトル共通で利用可能なテスト項目のみであり、 タイトル固有のテスト項目はタイトル側で実装する必要がある。

ネットワークセルフテスト項目について
  • テスト項目は NetworkTestItem 列挙により定義される。
    • 列挙値の定義順に沿って順番にテスト処理が行われる。
  • メンバ関数 isAvailableItem が false を返す項目はテスト不可能であるため、 アプリでは項目自体が存在しないものとして扱うこと。(画面表示しない等)
    • 各項目がテスト可能であるか否かは、 Daemonプロセスの設定ファイルの記述内容により一意に定まる。
    • テスト可能な項目の一覧はメンバ関数 getAvailableItems で取得できる。
  • テスト実施中は、各テスト項目について項目名とその状態を横に並べて表示すること。
パワーオンセルフテスト
  • Daemonプロセスは、起動時およびゲームテストモードから抜けたタイミングで パワーオンセルフテストを自動的に開始する。
  • パワーオンセルフテストが完了するか、ゲームテストモードに入るまで、 メンバ関数 isRunning は true を返し続ける。
  • テスト項目処理が失敗した場合は次のように処理される。
    • リトライによる復旧が可能である場合、Daemonプロセス側でリトライ処理が行われる。 リトライするのは失敗したテスト項目からであり、 既に成功済みのテスト項目はリトライされず正常完了状態のままとなる。
    • リトライによる復旧が不可能である場合、以降の項目はすべて "N/A" となり、 パワーオンセルフテストは完了となる。
  • リトライ処理の関係上、メンバ関数 isBusy が true を返す状態であっても メンバ関数 getResultTestResult::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

テスト項目をテスト可能であるか否かを取得する。

引数
[in]itemテスト項目。
戻り値
trueテスト可能である場合。
falseテスト不可能である場合。
例外
Exception引数 item に不正な値を指定した場合。

現在のネットワーク状態は考慮せず、単にテスト可能であるか否かを返す。 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

テスト可能なテスト項目を取得する。

引数
[in]index項目インデックス。
戻り値
テスト可能なテスト項目。
例外
Exception引数 index にテスト可能なテスト項目数以上の値を指定した場合。 項目数はメンバ関数 getAvailableItemCount で取得できる。
std::vector<NetworkTestItem> amdaemon::NetworkTestInfo::getAvailableItems ( ) const
inline

テスト可能なテスト項目配列を取得する。

戻り値
テスト可能なテスト項目配列。

アプリではこの関数が返すテスト項目のみを表示すること。

NetworkTestState amdaemon::NetworkTestInfo::getState ( NetworkTestItem  item) const

テスト項目の実施状態を取得する。

引数
[in]itemテスト項目。
戻り値
実施状態。未実施の場合は NetworkTestState::None
例外
Exception引数 item に不正な値を指定した場合。

メンバ関数 isAvailableItem が false を返すテスト項目の場合、 この関数の戻り値は未定義となる。

bool amdaemon::NetworkTestInfo::isBusy ( NetworkTestItem  item) const
inline

テスト項目を処理中であるか否かを取得する。

引数
[in]itemテスト項目。
戻り値
true処理中である場合。
false処理中ではない場合。
例外
Exception引数 item に不正な値を指定した場合。

条件式 (getState(item) == NetworkTestState::Busy) の結果を返す。

メンバ関数 isAvailableItem が false を返すテスト項目の場合、 この関数の戻り値は未定義となる。

bool amdaemon::NetworkTestInfo::isDone ( NetworkTestItem  item) const
inline

テスト項目が処理完了済みであるか否かを取得する。

引数
[in]itemテスト項目。
戻り値
true処理完了済みである場合。
false処理完了済みではない場合。
例外
Exception引数 item に不正な値を指定した場合。

条件式 (getState(item) == NetworkTestState::Done) の結果を返す。

メンバ関数 isAvailableItem が false を返すテスト項目の場合、 この関数の戻り値は未定義となる。

TestResult amdaemon::NetworkTestInfo::getResult ( NetworkTestItem  item) const

テスト項目の処理結果を取得する。

引数
[in]itemテスト項目。
戻り値
処理結果。処理未完了である場合は TestResult::None
例外
Exception引数 item に不正な値を指定した場合。

テストが開始されるとすべての値が TestResult::None に初期化される。 その後はメンバ関数 getState の戻り値により下記のようになる。

実施状態が NetworkTestState::None である場合
実施状態が NetworkTestState::Busy である場合
実施状態が NetworkTestState::Done である場合、

ただし、メンバ関数 isAvailableItem が false を返すテスト項目の場合、 この関数の戻り値は未定義となる。

std::uint32_t amdaemon::NetworkTestInfo::getHops ( ) const

ホップ数を取得する。

戻り値
ホップ数。未取得の場合は 0 。

テストが開始されると 0 に初期化される。 その後、 isDone(NetworkTestItem::Hops) が true を返し、 かつ getResult(NetworkTestItem::Hops) が TestResult::Good を返すと、この値が取得できるようになる。

const wchar_t* amdaemon::NetworkTestInfo::getStatusText ( NetworkTestItem  item,
bool  blinkBusy = true 
) const

テスト項目の状態表示用文字列を取得する。

引数
[in]itemテスト項目。
[in]blinkBusyテスト項目実施中に文字列 "CHECK" と空文字列を一定時間毎に交互に返させる場合は true (既定値)。 文字列 "CHECK" のみを返させる場合は false 。
戻り値
状態表示用文字列。
例外
Exception引数 item に不正な値を指定した場合。

指定したテスト項目について、下記の値を返す。

  • テスト項目未実施の場合、空文字列を返す。
  • テスト項目実施中の場合(メンバ関数 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 については設定されない。

失敗したテスト項目がゲーム進行不能レベルのものである場合、 アプリはこのエラー情報を表示して進行不能であることを示すことができる。

  • パワーオンセルフテストでは、リトライ処理によりテスト項目が成功した場合、 自動的にエラー情報がクリアされる。
  • ネットワークテストでは、再度テストを開始するまでクリアされない。

このクラス詳解は次のファイルから抽出されました: