AM Daemon ライブラリリファレンス
Network.h
[詳解]
1 /// @file
2 /// @brief ネットワーク関連処理を提供するMonostateクラス Network のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_NETWORK_H
7 #define AMDAEMON_NETWORK_H
8 
9 #include "amdaemon/env.h"
12 
13 namespace amdaemon
14 {
15 /// @addtogroup g_network
16 /// @{
17 
18  /// @brief ネットワーク関連処理を提供するMonostateクラス。
19  ///
20  /// Core クラスのメンバ関数 Core#execute 呼び出しによって内容が更新される。
21  /// 一部の関数は処理完了まで呼び出し元スレッドをブロックする。
22  ///
23  /// @par アプリ固有の通信処理を行う場合の注意
24  /// - アプリ固有のLAN通信処理(サーバ機とサテライト機との通信等)を行う場合、
25  /// メンバ関数 #isLanAvailable が true を返すまでは処理を行ってはならない。
26  /// - アプリ固有の店内LAN通信処理(メダルバンク通信等)を行う場合、
27  /// メンバ関数 #isLocationLanAvailable が true を返すまでは処理を行ってはならない。
28  /// - アプリ固有のWAN通信処理(タイトルサーバとの通信等)を行う場合、
29  /// メンバ関数 #isWanAvailable が true を返すまでは処理を行ってはならない。
30  /// - ただしALL.Net非対応タイトルの場合はその限りではない。
31  ///
32  /// @ingroup g_common
33  class Network
34  {
35  public:
36  // 下記は暗黙の定義を用いる。
37  //Network() = default;
38  //‾Network() = default;
39  //Network(const Network&) = default;
40  //Network& operator=(const Network&) = default;
41 
42  /// @brief ネットワーク機能を利用可能であるか否かを取得する。
43  /// @retval true 利用可能である場合。
44  /// @retval false 機能が無効である場合。
45  bool isAvailable() const;
46 
47  public:
48  // ネットワーク状態
49 
50  /// @brief LANを利用可能な状態であるか否かを取得する。
51  /// @retval true 利用可能である場合。
52  /// @retval false 利用不可能であるか、ネットワーク機能が無効である場合。
53  ///
54  /// - Daemonプロセスがテスト項目 "IP ADDRESS" に成功すると true を返すようになる。
55  /// - ただし店舗ルータ直下で動作する設定の場合は常に false を返す。
56  /// - この関数が true を返す前にアプリ固有のLAN通信処理を行ってはならない。
57  /// - 一度 true を返した後は再度パワーオンセルフテストまたはネットワークテストを
58  /// 開始するまで false に戻ることはない。
59  bool isLanAvailable() const;
60 
61  /// @brief 店内LANを利用可能な状態であるか否かを取得する。
62  /// @retval true 利用可能である場合。
63  /// @retval false 利用不可能であるか、ネットワーク機能が無効である場合。
64  ///
65  /// - Daemonプロセスがテスト項目 "HOPS" に成功すると true を返すようになる。
66  /// - この関数が true を返す前にアプリ固有の店内LAN通信処理を行ってはならない。
67  /// - 一度 true を返した後は再度パワーオンセルフテストまたはネットワークテストを
68  /// 開始するまで false に戻ることはない。
69  bool isLocationLanAvailable() const;
70 
71  /// @brief WANを利用可能な状態であるか否かを取得する。
72  /// @retval true 利用可能である場合。
73  /// @retval false 利用不可能であるか、ネットワーク機能が無効である場合。
74  ///
75  /// - ALL.Net対応タイトルの場合、Daemonプロセスがテスト項目
76  /// "ALL.Net AUTHENTICATION" に成功すると true を返すようになる。
77  /// - ALL.Net非対応タイトルの場合は常に false を返す。
78  /// - ALL.Net非対応だがWANを利用するタイトルでは独自に "DNS(WAN)" 相当の
79  /// ネットワークテストを実施する必要がある。
80  /// - この関数が true を返す前にアプリ固有のWAN通信処理を行ってはならない。
81  /// - ただしALL.Net非対応タイトルの場合はその限りではない。
82  /// - 一度 true を返した後は再度パワーオンセルフテストまたはネットワークテストを
83  /// 開始するまで false に戻ることはない。
84  bool isWanAvailable() const;
85 
86  public:
87  // ネットワーク設定情報
88 
89  /// @brief ネットワーク設定情報を取得する。
90  /// @return ネットワーク設定情報。
91  const NetworkProperty& getProperty() const;
92 
93  public:
94  // テスト
95 
96  /// @brief パワーオンセルフテスト情報を取得する。
97  /// @return パワーオンセルフテスト情報。
98  /// @see NetworkTestInfo
99  ///
100  /// 各情報の詳細は NetworkTestInfo クラスの説明を参照すること。
101  const NetworkTestInfo& getPowerOnTestInfo() const;
102 
103  /// @brief ネットワークテストを開始可能な状態であるか否かを取得する。
104  /// @retval true 開始可能な状態である場合。
105  /// @retval false 開始不可能な状態である場合。
106  /// @see Sequence
107  ///
108  /// ネットワーク機能が有効かつ現在ゲームテストモード中であれば true を返す。
109  /// ゲームテストモード状態の管理は Sequence クラスで行える。
110  bool canStartTest() const;
111 
112  /// @brief ネットワークテストを開始する。
113  /// @retval true 開始成功した場合。
114  /// @retval false 開始失敗した場合。
115  ///
116  /// メンバ関数 #canStartTest が false を返す場合は何もせずに false を返す。
117  /// 既にネットワークテストを実施中である場合はリスタートする。
118  ///
119  /// メンバ関数 #canStartTest が true を返す場合であっても、
120  /// Daemonプロセス側の状態等によっては開始できない場合がある。
121  /// そのため、必ず戻り値をチェックすること。
122  ///
123  /// Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。
124  bool startTest();
125 
126  /// @brief ネットワークテスト情報を取得する。
127  /// @return ネットワークテスト情報。
128  /// @see NetworkTestInfo
129  ///
130  /// 各情報の詳細は NetworkTestInfo クラスの説明を参照すること。
131  const NetworkTestInfo& getTestInfo() const;
132  };
133 
134 /// @}
135 } // namespace amdaemon
136 
137 #endif // AMDAEMON_NETWORK_H
bool isLanAvailable() const
LANを利用可能な状態であるか否かを取得する。
bool isWanAvailable() const
WANを利用可能な状態であるか否かを取得する。
const NetworkProperty & getProperty() const
ネットワーク設定情報を取得する。
ネットワークセルフテスト情報を提供するクラス NetworkTestInfo のヘッダ。
Daemonライブラリの環境定義を行うヘッダ。
const NetworkTestInfo & getTestInfo() const
ネットワークテスト情報を取得する。
ネットワーク設定情報を提供するクラス NetworkProperty のヘッダ。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
bool startTest()
ネットワークテストを開始する。
ネットワークセルフテスト情報を提供するクラス。
Definition: NetworkTestInfo.h:84
ネットワーク設定情報を提供するクラス。
Definition: NetworkProperty.h:27
bool isAvailable() const
ネットワーク機能を利用可能であるか否かを取得する。
const NetworkTestInfo & getPowerOnTestInfo() const
パワーオンセルフテスト情報を取得する。
bool canStartTest() const
ネットワークテストを開始可能な状態であるか否かを取得する。
bool isLocationLanAvailable() const
店内LANを利用可能な状態であるか否かを取得する。
ネットワーク関連処理を提供するMonostateクラス。
Definition: Network.h:33