AM Daemon ライブラリリファレンス
EMoneyResult.h
[詳解]
1 /// @file
2 /// @brief 電子マネー操作結果を提供するクラス EMoneyResult のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_EMONEYRESULT_H
7 #define AMDAEMON_EMONEYRESULT_H
8 
9 #include "amdaemon/env.h"
11 #include "amdaemon/EMoneyBrand.h"
12 #include "amdaemon/EMoneyDef.h"
13 #include "amdaemon/util/DateTime.h"
14 
15 #include <cstdint>
16 
17 namespace amdaemon
18 {
19 /// @addtogroup g_emoney
20 /// @{
21 
22  // 内部クラスの前方宣言
23  class InnerIndexHolder;
24 
25  /// @brief 電子マネー操作結果を提供するクラス。
26  /// @see EMoney, EMoneyOperation
27  ///
28  /// このクラスのインスタンスをアプリ側で直接生成することはできない。
29  /// EMoney クラスや EMoneyOperation クラスの各種メンバ関数から取得すること。
30  ///
31  /// @par 直近の操作結果
32  /// - EMoneyOperation クラスのメンバ関数 EMoneyOperation#getResult から取得する。
33  /// - 残高照会および支払の操作でのみ設定される。それ以外の操作では設定されない。
34  /// - 操作に成功した場合、全メンバ関数が有効な値を返す。
35  /// - 操作に失敗した場合、下記のメンバ関数のみ有効な値を返す。
36  /// - #valid
37  /// - #getStatus
38  /// - #getTime
39  /// - #getBrand
40  /// - #getDealNumber
41  /// - メンバ関数 #getStatus は、操作に成功した場合は EMoneyResultStatus::Success を、
42  /// 失敗した場合は EMoneyResultStatus::Fail を返す。
43  ///
44  /// @par 取引結果履歴
45  /// - EMoney クラスのメンバ関数 EMoney#getDealResult 等から取得する。
46  /// - 全メンバ関数が有効な値を返す。
47  /// - メンバ関数 #getStatus の返す値は下記のように定まる。
48  /// - 支払操作中の電断等により支払が未了の場合は EMoneyResultStatus::Unconfirm 。
49  /// - 支払操作に失敗した場合は EMoneyResultStatus::Fail 。
50  /// - 支払操作に成功した場合は EMoneyResultStatus::Success 。
51  /// - 現実装で EMoneyResultStatus::Incomplete を返すことはない。
53  {
54  public:
55  /// @brief コンストラクタ。
56  /// @note アプリ側からは利用できない。
57  explicit EMoneyResult(InnerIndexHolder);
58 
59  // 下記は暗黙の定義を用いる。
60  //~EMoneyResult() = default;
61 
62  /// @brief 有効な情報が保持されているか否かを取得する。
63  /// @retval true 有効な情報が保持されている場合。
64  /// @retval false 有効な情報が保持されていない場合。
65  bool valid() const;
66 
67  /// @brief 操作の最終状態を取得する。
68  /// @return 操作の最終状態。
69  ///
70  /// 戻り値の詳細は EMoneyResult クラスの説明を参照すること。
72 
73  /// @brief 操作日時を取得する。
74  /// @return 操作日時。
75  const ::amdaemon::util::DateTime& getTime() const;
76 
77  /// @brief 操作対象ブランド情報を取得する。
78  /// @return 操作対象ブランド情報。
79  const EMoneyBrand& getBrand() const { return _brand; }
80 
81  /// @brief 取引通番文字列を取得する。
82  /// @return 取引通番文字列。
83  ///
84  /// 最大文字数は amdaemon::MaxEMoneyDealNumberLength 。終端文字を含まない。
85  const wchar_t* getDealNumber() const;
86 
87  /// @brief カード番号の表示用文字列を取得する。
88  /// @return カード番号の表示用文字列。操作中にエラーが発生した場合は不定値。
89  ///
90  /// 一部の文字が表示用にマスクされており、この値を識別子として用いることはできない。
91  ///
92  /// 最大文字数は amdaemon::MaxEMoneyCardNumberLength 。終端文字を含まない。
93  const wchar_t* getCardNumber() const;
94 
95  /// @brief 取引金額を取得する。
96  /// @return 取引金額。残高照会操作の場合や、操作中にエラーが発生した場合は 0 。
97  std::int32_t getAmount() const;
98 
99  /// @brief 操作前の残高を取得する。
100  /// @return 操作前の残高。操作中にエラーが発生した場合は 0 。
101  std::int32_t getBalanceBefore() const;
102 
103  /// @brief 操作後の残高を取得する。
104  /// @return 操作後の残高。操作中にエラーが発生した場合は 0 。
105  ///
106  /// 残高照会の結果はこの関数で取得できる。
107  std::int32_t getBalanceAfter() const;
108 
109  private:
110  std::size_t _ref; ///< 内部参照値。
111  EMoneyBrand _brand; ///< 操作対象ブランド情報。
112 
113  private:
114  // コピー禁止
115  EMoneyResult(const EMoneyResult&); // 宣言のみ
116  EMoneyResult& operator=(const EMoneyResult&); // 宣言のみ
117  };
118 
119 /// @}
120 } // namespace amdaemon
121 
122 #endif // AMDAEMON_EMONEYRESULT_H
電子マネーに関する情報を定義するヘッダ。
電子マネー操作の最終状態を表す列挙 EMoneyResultStatus のヘッダ。
電子マネーのブランド情報を提供するクラス。
Definition: EMoneyBrand.h:37
電子マネーのブランド情報を提供するクラス EMoneyBrand のヘッダ。
EMoneyResultStatus getStatus() const
操作の最終状態を取得する。
std::int32_t getAmount() const
取引金額を取得する。
const wchar_t * getDealNumber() const
取引通番文字列を取得する。
std::int32_t getBalanceBefore() const
操作前の残高を取得する。
Daemonライブラリの環境定義を行うヘッダ。
EMoneyResult(InnerIndexHolder)
コンストラクタ。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
std::int32_t getBalanceAfter() const
操作後の残高を取得する。
マイクロ秒精度の日付時刻を表す構造体 DateTime のヘッダ。
bool valid() const
有効な情報が保持されているか否かを取得する。
const wchar_t * getCardNumber() const
カード番号の表示用文字列を取得する。
const EMoneyBrand & getBrand() const
操作対象ブランド情報を取得する。
Definition: EMoneyResult.h:79
電子マネー操作結果を提供するクラス。
Definition: EMoneyResult.h:52
EMoneyResultStatus
電子マネー操作の最終状態を表す列挙。
Definition: EMoneyResultStatus.h:17
const ::amdaemon::util::DateTime & getTime() const
操作日時を取得する。