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

プレイヤー単位のALL.Net課金処理を提供するクラス。 [詳解]

#include <AccountingUnit.h>

公開メンバ関数

 AccountingUnit (::amdaemon::InnerIndexHolder)
 コンストラクタ。 [詳解]
 
bool canBeginPlay () const
 課金プレイを開始可能な状態であるか否かを取得する。 [詳解]
 
AccountingHandle beginPlay (std::uint32_t kindCode, std::uint32_t statusCode)
 課金プレイを開始する。 [詳解]
 
bool endPlay (AccountingHandle handle, std::uint32_t kindCode, std::uint32_t statusCode, std::uint32_t itemCount)
 課金プレイを終了する。 [詳解]
 
AccountingHandle continuePlay (AccountingHandle prevHandle, std::uint32_t prevKindCode, std::uint32_t prevStatusCode, std::uint32_t prevItemCount, std::uint32_t nextKindCode, std::uint32_t nextStatusCode)
 課金プレイを一旦終了し、新たに開始する。 [詳解]
 
bool accountItem (std::uint32_t kindCode, std::uint32_t statusCode, std::uint32_t itemCount)
 単発課金を行う。 [詳解]
 
bool putQuantity (std::uint32_t kindCode, std::uint32_t quantity)
 数量値を保存する。 [詳解]
 
bool putGeneralId (std::uint32_t kindCode, const wchar_t *generalId)
 数列値を保存する。 [詳解]
 

静的公開メンバ関数

static std::uint32_t getKindCodeLimit ()
 種別コードの最大許容値を取得する。 [詳解]
 
static std::uint32_t getStatusCodeLimit ()
 状態コードの最大許容値を取得する。 [詳解]
 
static std::uint32_t getItemCountLimit ()
 商品数の最大許容値を取得する。 [詳解]
 
static std::uint32_t getQuantityLimit ()
 数量値の最大許容値を取得する。 [詳解]
 
static std::size_t getMaxGeneralIdLength ()
 数列値の最大文字数を取得する。 [詳解]
 

詳解

プレイヤー単位のALL.Net課金処理を提供するクラス。

参照
Accounting, Player

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

構築子と解体子

amdaemon::allnet::AccountingUnit::AccountingUnit ( ::amdaemon::InnerIndexHolder  )
explicit

コンストラクタ。

覚え書き
アプリ側からは利用できない。

関数詳解

static std::uint32_t amdaemon::allnet::AccountingUnit::getKindCodeLimit ( )
static

種別コードの最大許容値を取得する。

戻り値
種別コードの最大許容値。固定値 654 。
static std::uint32_t amdaemon::allnet::AccountingUnit::getStatusCodeLimit ( )
static

状態コードの最大許容値を取得する。

戻り値
状態コードの最大許容値。固定値 99 。
static std::uint32_t amdaemon::allnet::AccountingUnit::getItemCountLimit ( )
static

商品数の最大許容値を取得する。

戻り値
商品数の最大許容値。固定値 255 。
static std::uint32_t amdaemon::allnet::AccountingUnit::getQuantityLimit ( )
static

数量値の最大許容値を取得する。

戻り値
数量値の最大許容値。固定値 7679 。
static std::size_t amdaemon::allnet::AccountingUnit::getMaxGeneralIdLength ( )
static

数列値の最大文字数を取得する。

戻り値
数列値の最大文字数。少なくとも 127 以上の固定値。
bool amdaemon::allnet::AccountingUnit::canBeginPlay ( ) const

課金プレイを開始可能な状態であるか否かを取得する。

戻り値
true開始可能である場合。
false開始不可能である場合。
参照
Accounting::isPlayable

Accounting::isPlayable と同じ値を返す。

この関数が true を返す場合であっても、 メンバ関数 beginPlay の呼び出しが必ず成功するとは限らない。

AccountingHandle amdaemon::allnet::AccountingUnit::beginPlay ( std::uint32_t  kindCode,
std::uint32_t  statusCode 
)

課金プレイを開始する。

引数
[in]kindCode種別コード。 0 以上 654 以下。
[in]statusCode状態コード。 0 以上 99 以下。
戻り値
識別ハンドル値。開始できなかった場合は無効なハンドル値。
参照
Sequence::beginPlay, Sequence::continuePlay, Sequence::endPlay
例外
Exception
  • 引数 kindCode に 654 より大きい値を指定した場合。
  • 引数 statusCode に 99 より大きい値を指定した場合。

プレイ開始、コンティニュー、プレイ終了と連動して課金プレイを開始したい場合は Sequence クラスのプレイ状態変更関連メンバ関数を用いることを推奨する。 それ以外のタイミングで課金プレイを開始したい場合にこの関数を用いる。

メンバ関数 canBeginPlay が false を返す場合は何もせずに無効なハンドル値を返す。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

bool amdaemon::allnet::AccountingUnit::endPlay ( AccountingHandle  handle,
std::uint32_t  kindCode,
std::uint32_t  statusCode,
std::uint32_t  itemCount 
)

課金プレイを終了する。

引数
[in]handle識別ハンドル値。メンバ関数 beginPlay や continuePlay から受け取った値。
[in]kindCode種別コード。 0 以上 654 以下。
[in]statusCode状態コード。 0 以上 99 以下。
[in]itemCount商品数。 0 以上 255 以下。 0 ならば課金しない。
戻り値
true終了できた場合。
false終了できなかったか、開始していない場合。
参照
Sequence::beginPlay, Sequence::continuePlay, Sequence::endPlay
例外
Exception
  • 引数 handle に無効なハンドル値を指定した場合。
  • 引数 kindCode に 654 より大きい値を指定した場合。
  • 引数 statusCode に 99 より大きい値を指定した場合。
  • 引数 itemCount に 255 より大きい値を指定した場合。

メンバ関数 beginPlay で開始した課金プレイを終了させる場合に用いる。 Sequence クラスのプレイ状態変更関連メンバ関数を用いて開始した課金プレイを この関数で終了させることはできない。

通常、引数 itemCount には課金するならば 1 、しないならば 0 を指定する。 ただしタイトルによっては 2 以上の値を指定する場合もある。 詳しくはALL.Net技術情報サイトの「課金ログ定義ガイドライン」等を参照すること。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

AccountingHandle amdaemon::allnet::AccountingUnit::continuePlay ( AccountingHandle  prevHandle,
std::uint32_t  prevKindCode,
std::uint32_t  prevStatusCode,
std::uint32_t  prevItemCount,
std::uint32_t  nextKindCode,
std::uint32_t  nextStatusCode 
)

課金プレイを一旦終了し、新たに開始する。

引数
[in]prevHandle終了用の識別ハンドル値。 メンバ関数 beginPlay や continuePlay から受け取った値。
[in]prevKindCode終了用の種別コード。 0 以上 654 以下。
[in]prevStatusCode終了用の状態コード。 0 以上 99 以下。
[in]prevItemCount終了用の商品数。 0 以上 255 以下。 0 ならば課金しない。
[in]nextKindCode新規開始用の種別コード。 0 以上 654 以下。
[in]nextStatusCode新規開始用の状態コード。 0 以上 99 以下。
戻り値
新たな識別ハンドル値。開始できなかった場合は無効なハンドル値。
参照
Sequence::continuePlay
例外
Exception
  • 引数 prevHandle に無効なハンドル値を指定した場合。
  • 引数 prevKindCode に 654 より大きい値を指定した場合。
  • 引数 prevStatusCode に 99 より大きい値を指定した場合。
  • 引数 prevItemCount に 255 より大きい値を指定した場合。
  • 引数 nextKindCode に 654 より大きい値を指定した場合。
  • 引数 nextStatusCode に 99 より大きい値を指定した場合。

コンティニューと連動して課金プレイを新たに開始したい場合は Sequence クラスのメンバ関数 Sequence::continuePlay を用いることを推奨する。 それ以外のタイミングで課金プレイを新たに開始したい場合にこの関数を用いる。

メンバ関数 endPlaybeginPlay を続けて呼び出すこととほぼ同義だが、 そちらの場合と異なり、課金プレイの終了直後に締め処理が走ってしまうことがない。 そのため安全に課金プレイを新規開始することができる。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

bool amdaemon::allnet::AccountingUnit::accountItem ( std::uint32_t  kindCode,
std::uint32_t  statusCode,
std::uint32_t  itemCount 
)

単発課金を行う。

引数
[in]kindCode種別コード。 0 以上 654 以下。
[in]statusCode状態コード。 0 以上 99 以下。
[in]itemCount商品数。 0 以上 255 以下。
戻り値
true課金できた場合。
false課金できなかった場合。
例外
Exception
  • 引数 kindCode に 654 より大きい値を指定した場合。
  • 引数 statusCode に 99 より大きい値を指定した場合。
  • 引数 itemCount に 255 より大きい値を指定した場合。

課金プレイ中でなければ課金できない。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

bool amdaemon::allnet::AccountingUnit::putQuantity ( std::uint32_t  kindCode,
std::uint32_t  quantity 
)

数量値を保存する。

引数
[in]kindCode種別コード。 0 以上 654 以下。
[in]quantity数量値。 0 以上 7679 以下。
戻り値
true保存できた場合。
false保存できなかった場合。
例外
Exception
  • 引数 kindCode に 654 より大きい値を指定した場合。
  • 引数 quantity に 7679 より大きい値を指定した場合。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。

bool amdaemon::allnet::AccountingUnit::putGeneralId ( std::uint32_t  kindCode,
const wchar_t *  generalId 
)

数列値を保存する。

引数
[in]kindCode種別コード。 0 以上 654 以下。
[in]generalId数列値。 '0' 〜 '9' で構成される文字列。
戻り値
true保存できた場合。
false保存できなかった場合。
例外
Exception
  • 引数 kindCode に 654 より大きい値を指定した場合。
  • 引数 generalId に nullptr を指定した場合。
  • 引数 generalId に空文字列を指定した場合。
  • 引数 generalId の文字数が最大文字数より多い場合。 最大文字数は静的メンバ関数 getMaxGeneralIdLength で取得できる。
  • 引数 generalId に '0' 〜 '9' 以外の文字が含まれている場合。

Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。


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