AM Daemon ライブラリリファレンス
PlayParamHolder.h
[詳解]
1 /// @file
2 /// @brief プレイ状態変更に用いるパラメータを保持する基底クラス PlayParamHolder のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_PLAYPARAMHOLDER_H
7 #define AMDAEMON_PLAYPARAMHOLDER_H
8 
9 #include "amdaemon/env.h"
10 #include "amdaemon/AimeId.h"
11 
12 #include <memory>
13 #include <cstdint>
14 #include <cstddef>
15 
16 namespace amdaemon
17 {
18  // 前方宣言
19  class InnerPlayParam;
20 
21 /// @addtogroup g_sequence
22 /// @{
23 
24  /// @brief プレイ状態変更に用いるパラメータを保持する基底クラス。
25  ///
26  /// このクラスのインスタンスをアプリ側で直接生成することはできない。
27  /// このクラスから派生した下記のクラスを用いること。
28  ///
29  /// - PlayBeginParam
30  /// - PlayContinueParam
31  /// - PlayEndParam
33  {
34  protected:
35  /// コンストラクタ。
37 
38  /// @brief コピーコンストラクタ。
39  /// @param[in] src コピー元。
40  PlayParamHolder(const PlayParamHolder& src);
41 
42  /// @brief ムーブコンストラクタ。
43  /// @param[in] src ムーブ元。
45 
46  /// デストラクタ。
47  virtual ‾PlayParamHolder();
48 
49  /// @brief コピー代入演算子のオーバロード。
50  /// @param[in] r 右辺値。
51  /// @return 自身の参照。
53 
54  /// @brief ムーブ代入演算子のオーバロード。
55  /// @param[in] r 右辺値。
56  /// @return 自身の参照。
58 
59  public:
60  /// すべてのパラメータを無効状態にする。
61  void reset();
62 
63  /// @brief 内部パラメータを取得する。
64  /// @return 内部パラメータ。
65  /// @note ライブラリ内部で用いられる。アプリ側から利用する必要はない。
66  virtual const InnerPlayParam& getInnerParam() const;
67 
68  protected:
69  /// @brief ゲームコストパラメータを設定する。
70  /// @param[in] gameCostIndex ゲームコスト設定インデックス。
71  /// @param[in] count ゲームコスト減算回数。既定値は 1 。
72  /// @see CreditUnit#payGameCost
73  ///
74  /// @exception Exception
75  /// - 引数 gameCostIndex に CreditConfig::MaxGameCostCount 以上の値を指定した場合。
76  /// - 引数 count に 0 以下もしくは 99 より大きい値を指定した場合。
77  ///
78  /// このパラメータを設定するとプレイ開始用またはコンティニュー用の
79  /// ゲームコスト(クレジット)支払いが行われるようになる。
80  ///
81  /// 引数 count については、
82  /// CreditUnit クラスのメンバ関数 CreditUnit#payGameCost の説明を参照すること。
83  /// 通常は省略して構わない。
84  void setGameCost(std::size_t gameCostIndex, std::size_t count = 1);
85 
86  /// @brief ALL.Net課金プレイ開始パラメータを設定する。
87  /// @param[in] kindCode 種別コード。 0 以上 654 以下。
88  /// @param[in] statusCode 状態コード。 0 以上 99 以下。
89  /// @see AccountingUnit#beginPlay
90  ///
91  /// @exception Exception
92  /// - 引数 kindCode に 654 より大きい値を指定した場合。
93  /// - 引数 statusCode に 99 より大きい値を指定した場合。
94  ///
95  /// このパラメータを設定するとALL.Net課金プレイ開始処理が行われるようになる。
96  void setAccountingBegin(std::uint32_t kindCode, std::uint32_t statusCode);
97 
98  /// @brief ALL.Net課金プレイ終了パラメータを設定する。
99  /// @param[in] kindCode 種別コード。 0 以上 654 以下。
100  /// @param[in] statusCode 状態コード。 0 以上 99 以下。
101  /// @param[in] itemCount 商品数。 0 以上 255 以下。 0 ならば課金しない。
102  /// @see AccountingUnit#endPlay
103  ///
104  /// @exception Exception
105  /// - 引数 kindCode に 654 より大きい値を指定した場合。
106  /// - 引数 statusCode に 99 より大きい値を指定した場合。
107  /// - 引数 itemCount に 255 より大きい値を指定した場合。
108  ///
109  /// - このパラメータを設定するとALL.Net課金プレイ終了処理が行われるようになる。
110  /// - 既にALL.Net課金プレイ中である場合はそれに対して終了処理が行われる。
111  /// - ALL.Net課金プレイ中ではない場合、メンバ関数 #setAccountingBegin によって
112  /// ALL.Net課金プレイ開始パラメータも同時に指定しなければならない。
113  void setAccountingEnd(
114  std::uint32_t kindCode,
115  std::uint32_t statusCode,
116  std::uint32_t itemCount);
117 
118  /// @brief Aimeプレイログ送信用のUID値パラメータを設定する。
119  /// @param[in] aimeId Aime UID値。
120  /// @see Aime#sendLog
121  ///
122  /// @exception Exception
123  /// 引数 aimeId に無効なUID値を指定した場合。
124  ///
125  /// このパラメータを設定するとAimeプレイログが送信されるようになる。
126  void setAimeId(AimeId aimeId);
127 
128  private:
129  struct Data;
130 
131  /// 内部データ。
132  std::unique_ptr<Data> _data;
133  };
134 
135 /// @}
136 } // namespace amdaemon
137 
138 #endif // AMDAEMON_PLAYPARAMHOLDER_H
AimeのUID値を保持する構造体。
Definition: AimeId.h:27
void setAccountingBegin(std::uint32_t kindCode, std::uint32_t statusCode)
ALL.Net課金プレイ開始パラメータを設定する。
void setAimeId(AimeId aimeId)
Aimeプレイログ送信用のUID値パラメータを設定する。
AimeのUID値を保持する構造体 AimeId のヘッダ。
PlayParamHolder()
コンストラクタ。
Daemonライブラリの環境定義を行うヘッダ。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
virtual const InnerPlayParam & getInnerParam() const
内部パラメータを取得する。
プレイ状態変更に用いるパラメータを保持する基底クラス。
Definition: PlayParamHolder.h:32
PlayParamHolder & operator=(const PlayParamHolder &r)
コピー代入演算子のオーバロード。
void setAccountingEnd(std::uint32_t kindCode, std::uint32_t statusCode, std::uint32_t itemCount)
ALL.Net課金プレイ終了パラメータを設定する。
void setGameCost(std::size_t gameCostIndex, std::size_t count=1)
ゲームコストパラメータを設定する。
virtual ‾PlayParamHolder()
デストラクタ。
void reset()
すべてのパラメータを無効状態にする。