AM Daemon ライブラリリファレンス
AimeResult.h
[詳解]
1 /// @file
2 /// @brief
3 /// 初期化処理やポーリング処理によって取得したAime関連情報を保持するクラス
4 /// AimeResult のヘッダ。
5 ///
6 /// Copyright(C)SEGA
7 
8 #ifndef AMDAEMON_AIMERESULT_H
9 #define AMDAEMON_AIMERESULT_H
10 
11 #include "amdaemon/env.h"
12 #include "amdaemon/deprecated.h"
13 #include "amdaemon/AccessCode.h"
14 #include "amdaemon/AimeOfflineId.h"
15 #include "amdaemon/AimeId.h"
16 
17 #include <cstddef>
18 
19 namespace amdaemon
20 {
21 /// @addtogroup g_aime
22 /// @{
23 
24  // 内部クラスの前方宣言
25  class InnerIndexHolder;
26 
27  /// @brief 初期化処理やポーリング処理によって取得したAime関連情報を保持するクラス。
28  /// @see AimeUnit
29  ///
30  /// このクラスのインスタンスをアプリ側で直接生成することはできない。
31  /// AimeUnit クラスのメンバ関数 AimeUnit#getResult から取得すること。
32  class AimeResult
33  {
34  public:
35  /// @brief コンストラクタ。
36  /// @note アプリ側からは利用できない。
37  explicit AimeResult(InnerIndexHolder);
38 
39  // 下記は暗黙の定義を用いる。
40  //‾AimeResult() = default;
41 
42  /// @brief 有効な情報が保持されているか否かを取得する。
43  /// @retval true 有効な情報が保持されている場合。
44  /// @retval false 有効な情報が保持されていない場合。
45  bool valid() const;
46 
47  /// @brief Aimeリーダーが接続されているか否かを取得する。
48  /// @retval true Aimeリーダーが接続されている場合。
49  /// @retval false Aimeリーダーが接続されていないか、未チェックである場合。
50  ///
51  /// メンバ関数 #valid が true を返すのであれば必ず有意な値を返す。
52  bool isReaderDetected() const;
53 
54  /// @brief Aimeリーダーのハードウェアバージョンを取得する。
55  /// @return ハードウェアバージョン。未取得の場合は空文字列。
56  ///
57  /// この関数はすべてのポーリング処理コマンドで有意な値を返す。
58  /// ただしメンバ関数 #isReaderDetected が false を返す場合、この関数は空文字列を返す。
59  ///
60  /// 表示等に利用する場合、値をキャッシュせず直接この関数の戻り値を利用すること。
61  /// ポーリング処理開始直後からしばらくは空文字列となるが、
62  /// Aimeリーダーが正しく接続されていればすぐに有効な値を返すようになる。
63  ///
64  /// 特に電子マネー対応タイトルでは、
65  /// 第3世代以降のAimeリーダーが接続されているか判別するために、
66  /// この関数の戻り値をゲームテストモード等で表示することを推奨する。
67  const wchar_t* getHardVersion() const;
68 
69  /// @brief Aimeリーダーのファームウェアバージョンを取得する。
70  /// @return ファームウェアバージョン。未取得の場合は空文字列。
71  ///
72  /// この関数はすべてのポーリング処理コマンドで有意な値を返す。
73  /// ただしメンバ関数 #isReaderDetected が false を返す場合、この関数は空文字列を返す。
74  ///
75  /// 表示等に利用する場合、値をキャッシュせず直接この関数の戻り値を利用すること。
76  /// ポーリング処理開始直後からしばらくは空文字列となるが、
77  /// Aimeリーダーが正しく接続されていればすぐに有効な値を返すようになる。
78  const wchar_t* getFirmVersion() const;
79 
80  /// @brief 読み取ったAimeのオフラインIDを取得する。
81  /// @return オフラインID。未取得の場合は無効値。
82  ///
83  /// この関数はすべてのポーリング処理コマンドで有意な値を返す。
84  /// ただしAimeリーダーによる読み取りに失敗した場合、この関数は無効値を返す。
85  ///
86  /// オフラインIDとは、各種DBにアクセスせずに取得できるID値であり、
87  /// 他のオフラインIDとの比較やバイナリ書き出しが可能である。
88  /// オフラインプレイをサポートするゲームで用いるとよい。
89  const AimeOfflineId& getOfflineId() const;
90 
91  /// @brief 読み取ったAimeがFeliCaモバイル(おサイフケータイ)であるか否かを取得する。
92  /// @retval true FeliCaモバイルである場合。
93  /// @retval false FeliCaモバイルではないか、未チェックである場合。
94  ///
95  /// この関数はすべてのポーリング処理コマンドで有意な値を返す。
96  /// ただしメンバ関数 #getOfflineId が無効値を返す場合、この関数は false を返す。
97  ///
98  /// この関数はFeliCaモバイル(おサイフケータイ)の場合のみ true を返す。
99  /// FeliCaスタンダード(キャラEdy)や FeliCa Lite-S (共通アミューズメントICカード)等、
100  /// FeliCaモバイル以外のFeliCaデバイスである場合は false を返す。
101  bool isMobile() const;
102 
103  /// @brief 読み取ったAimeのアクセスコードを取得する。
104  /// @return アクセスコード。未取得の場合は無効値。
105  ///
106  /// この関数はすべてのポーリング処理コマンドで有意な値を返す。
107  /// ただし下記の場合、この関数は無効値を返す。
108  ///
109  /// - Aimeリーダーによる読み取りに失敗した場合。
110  /// - ポーリング処理コマンドに AimeCommand::ScanOffline を指定し、
111  /// 読み取ったAimeの種別がFeliCaであった場合。
112  /// - FeliCaのアクセスコードはFeliCaDBにアクセスしないとわからないため。
113  const AccessCode& getAccessCode() const;
114 
115  /// @brief 読み取ったAimeのUID値を取得する。
116  /// @return UID値。未取得の場合は無効値。
117  ///
118  /// この関数はポーリング処理コマンド AimeCommand::Scan でのみ有意な値を返す。
119  /// ただし何らかの理由でUID値を取得できない場合、この関数は無効値を返す。
120  const AimeId& getAimeId() const;
121 
122  /// @brief 読み取ったAimeが SEGA ID に紐付いているか否かを取得する。
123  /// @retval true 紐付いている場合。
124  /// @retval false 紐付いていないか、取得できなかった場合。
125  ///
126  /// この関数はポーリング処理コマンド AimeCommand::Scan でのみ有意な値を返す。
127  /// ただしメンバ関数 #getAimeId が無効値を返す場合、この関数は false を返す。
128  bool isSegaIdRegistered() const;
129 
130  /// @brief 読み取ったAimeに紐付く SEGA ID への認証キーを取得する。
131  /// @return 認証キー。紐付いていないか、取得できなかった場合は nullptr 。
132  ///
133  /// この関数はポーリング処理コマンド AimeCommand::Scan でのみ有意な値を返す。
134  /// ただしメンバ関数 #isSegaIdRegistered が false を返す場合、この関数は
135  /// nullptr を返す。
136  const wchar_t* getSegaIdAuthKey() const;
137 
138  /// @brief SEGA ID に紐付くUID値の個数を取得する。
139  /// @return UID値の個数。紐付いていないか、取得できなかった場合は 0 。
140  ///
141  /// この関数はポーリング処理コマンド AimeCommand::Scan でのみ有意な値を返す。
142  /// ただしメンバ関数 #isSegaIdRegistered が false を返す場合、この関数は 0 を返す。
143  ///
144  /// 読み取ったAimeのUID値は含まない。
145  std::size_t getRelatedAimeIdCount() const;
146 
147  /// @brief SEGA ID に紐付くUID値を取得する。
148  /// @param[in] index インデックス。
149  /// @return UID値。
150  ///
151  /// @exception Exception
152  /// 引数 index にUID値個数以上の値を指定した場合。
153  /// UID値個数はメンバ関数 #getRelatedAimeIdCount で取得できる。
154  ///
155  /// この関数はポーリング処理コマンド AimeCommand::Scan でのみ有意な値を返す。
156  ///
157  /// 読み取ったAimeのUID値は含まない。
158  /// 読み取ったAimeのUID値を取得したい場合はメンバ関数 #getAimeId を用いること。
159  const AimeId& getRelatedAimeId(std::size_t index) const;
160 
161  private:
162  std::size_t _unitIndex; ///< ユニットインデックス。
163 
164  private:
165  // コピー禁止
166  AimeResult(const AimeResult&); // 宣言のみ
167  AimeResult& operator=(const AimeResult&); // 宣言のみ
168  };
169 
170 /// @}
171 } // namespace amdaemon
172 
173 #endif // AMDAEMON_AIMERESULT_H
AimeのUID値を保持する構造体。
Definition: AimeId.h:27
bool isReaderDetected() const
Aimeリーダーが接続されているか否かを取得する。
const wchar_t * getHardVersion() const
Aimeリーダーのハードウェアバージョンを取得する。
const AimeId & getAimeId() const
読み取ったAimeのUID値を取得する。
AimeのUID値を保持する構造体 AimeId のヘッダ。
非推奨機能であることを示す AMDAEMON_DEPRECATED マクロを定義するヘッダ。
bool isSegaIdRegistered() const
読み取ったAimeが SEGA ID に紐付いているか否かを取得する。
初期化処理やポーリング処理によって取得したAime関連情報を保持するクラス。
Definition: AimeResult.h:32
Daemonライブラリの環境定義を行うヘッダ。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
const AimeId & getRelatedAimeId(std::size_t index) const
SEGA ID に紐付くUID値を取得する。
アクセスコード値構造体。
Definition: AccessCode.h:32
bool isMobile() const
読み取ったAimeがFeliCaモバイル(おサイフケータイ)であるか否かを取得する。
const wchar_t * getFirmVersion() const
Aimeリーダーのファームウェアバージョンを取得する。
オフラインでAimeを識別するためのID値構造体。
Definition: AimeOfflineId.h:30
const AimeOfflineId & getOfflineId() const
読み取ったAimeのオフラインIDを取得する。
AimeResult(InnerIndexHolder)
コンストラクタ。
std::size_t getRelatedAimeIdCount() const
SEGA ID に紐付くUID値の個数を取得する。
const wchar_t * getSegaIdAuthKey() const
読み取ったAimeに紐付く SEGA ID への認証キーを取得する。
アクセスコード値構造体 AccessCode のヘッダ。
オフラインでAimeを識別するためのID値構造体 AimeOfflineId のヘッダ。
const AccessCode & getAccessCode() const
読み取ったAimeのアクセスコードを取得する。
bool valid() const
有効な情報が保持されているか否かを取得する。