前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXTimer
タイマーの操作を行うクラスです。
#include <SFXTimer.h.hpp>
class SFXTimer;
SFMTYPEDEFCLASS(SFXTimer)

協調図

SFXTimer クラスの協調図

解説

SFXTimer クラスは、 タイマー(指定時間が経過したときに処理を実行させるコールバック)を扱うためのクラスです。

SFXTimer クラスは、以下の手順で使用します。

  1. SFXTimer::Set 関数を呼び出してタイマーの情報(コールバック関数とコールバック関数に渡すデータ)を設定します。
  2. SFXTimer::Schedule 関数を呼び出してタイマーをスケジュールします(コールバックを AEE シェルに登録します)。 この関数の引数には、コールバックが呼び出されるまでの経過時間をミリ秒単位で指定します。
  3. SFXTimer::Schedule 関数の引数で指定した時間が経過すると、コールバックが呼び出されます。
  4. コールバックが呼び出されるまでに SFXTimer::Cancel 関数を呼び出すと、 スケジュールされていたタイマー(コールバックの登録)はキャンセルされます。
[Note] 内部の実装

SFXTimer クラスは、SFXCallback クラスを利用して実装されています。 タイマーのスケジュール(コールバックの登録)は、 内部で BREW API ISHELL_SetTimerEx 関数を呼び出して行います。

class MyClass {
private:
    SFXTimer _timer; 
public:
    Void Function(Void);
    XALLBACK_DECLARE_SFXTIMER(TimerCallback)
};

Void MyClass::Function(Void)
{

    ...
    
    // タイマーのスケジュールに必要な情報を設定する
    // ※ TimerCallback 関数と TimerCallback 関数に渡すデータ)を設定する
    _timer.Set(XALLBACK_INTERNAL(TimerCallback));


    // タイマーをスケジュールする
    // ※ 4000 ミリ秒後に TimerCallback 関数が呼び出される
    _timer.Schedule(4000);
}

// 指定時間経過後に BREW 環境から呼び出されるコールバック関数
XALLBACK_IMPLEMENT_SFXTIMER(MyClass, TimerCallback) {

    ...
}

参照

BREW API ISHELL_SetTimerEx | SFXCallback | SFXTask

メンバ

コンストラクタ/デストラクタ
SFXTimer( Void )
SFXTimer クラスのコンストラクタです。
~SFXTimer( Void )
SFXTimer クラスのデストラクタです。
パブリック関数
Void Cancel( Void )
タイマーをキャンセルします。
static
SFXTimerConstRef
EmptyInstance( Void )
空のタイマーを取得します。
SFXCallback::CallbackSPP GetProcedure( Void )
タイマーに設定したコールバック関数を取得します。
VoidPtr GetReference( Void )
タイマーに設定したコールバック関数に渡すデータを取得します。
Bool IsValid( Void )
タイマーがスケジュール済みか判定します。
SFCError Schedule( UInt32 msec )
タイマーをスケジュールします。
Void Set( SFXCallback::CallbackSPP spp , VoidPtr reference )
タイマーを設定します。

SFXTimer::SFXTimer
SFXTimer クラスのコンストラクタです。
[ public, explicit ]
SFXTimer(Void);

解説

このコンストラクタは、何も行いません。


SFXTimer::~SFXTimer
SFXTimer クラスのデストラクタです。
[ public ]
~SFXTimer(Void);

解説

このデストラクタは、 内部的に SFXTimer::Cancel 関数を呼び出し、 タイマーのスケジュールをキャンセルします。

参照

SFXTimer::Cancel | SFXTimer::Schedule


SFXTimer::Cancel
タイマーをキャンセルします。
[ public ]
Void Cancel(Void);

解説

この関数は、タイマーのスケジュール(コールバックの登録)をキャンセルします。

SFXTimer::Schedule 関数を使用してスケジュールしたタイマーをキャンセルします。 タイマーがスケジュールされていない場合は、何も行いません。

[Tip] Tip

サスペンド時は、 この関数を呼び出してタイマーのスケジュール(コールバックの登録)をキャンセルすることを推奨します。

[Note] 注意

この関数は、SFXTimer::~SFXTimer デストラクタから呼び出されます。

[Note] 注意

この関数は、内部で SFXCallback::Cancel 関数を呼び出します。

参照

SFXTimer::Schedule | SFXTimer::~SFXTimer | SFXCallback::Cancel


SFXTimer::EmptyInstance
空のタイマーを取得します。
[ public, static ]
SFXTimerConstRef EmptyInstance(Void);

解説

この関数は、空のタイマーを表すインスタンスを取得します。

[Note] 注意

空のコールバックは、SFXTimer::SFXTimer コンストラクタの実行直後の状態と同じです。

参照

SFXTimer::SFXTimer


SFXTimer::GetProcedure
タイマーに設定したコールバック関数を取得します。
[ public, const ]
SFXCallback::CallbackSPP GetProcedure(Void);

戻り値

タイマーに設定したコールバック関数

解説

この関数は、 SFXTimer::Set 関数を使用してタイマーに設定したコールバック関数を取得します。

[Note] 注意

この関数は、内部で SFXCallback::GetProcedure 関数を呼び出します。

具体的には、 このタイマーが内部で保持する BREW API AEECallback 構造体の pfnNotify メンバに設定されている値を返します。

参照

SFXTimer::Set | SFXTimer::GetReference | SFXCallback::GetProcedure | BREW API AEECallback


SFXTimer::GetReference
タイマーに設定したコールバック関数に渡すデータを取得します。
[ public, const ]
VoidPtr GetReference(Void);

戻り値

タイマーに設定したコールバック関数に渡すデータ

解説

この関数は、 SFXTimer::Set 関数を使用してタイマーに設定したコールバック関数に渡すデータを取得します。

[Note] 注意

この関数は、内部で SFXCallback::GetReference 関数を呼び出します。

具体的には、 このタイマーが内部で保持する BREW API AEECallback 構造体の pNotifyData メンバに設定されている値を返します。

参照

SFXTimer::Set | SFXTimer::GetProcedure | SFXCallback::GetReference | BREW API AEECallback


SFXTimer::IsValid
タイマーがスケジュール済みか判定します。
[ public, const ]
Bool IsValid(Void);

戻り値

  • スケジュールされているとき: true
  • そうでないとき: false

解説

この関数は、 このタイマーが SFXTimer::Schedule 関数を呼び出してスケジュール済みか判定します。

[Note] 注意

この関数は、内部で SFXCallback::IsQueued 関数を呼び出します。

参照

SFXTimer::Schedule | SFXCallback::IsQueued


SFXTimer::Schedule
タイマーをスケジュールします。
[ public ]
SFCError Schedule(
    UInt32 msec   // コールバック関数が呼び出されるまでの時間(ミリ秒)
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • msec 引数が SINT32_MAXIMUM よりも大きいとき、またはタイマーが設定されていないとき: SFERR_INVALID_PARAM
  • 内部で SFBShell インスタンスの取得に失敗したとき: SFERR_FAILED
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、 タイマーをスケジュールします(AEE シェルにコールバックを登録します)。

タイマーがスケジュール済みの場合は、一旦それをキャンセルし、再スケジュールします。

この関数を実行すると、msec 引数で指定した時間が経過すると、 SFXTimer::Set 関数で設定したコールバック関数が呼び出されます。

[Note] 注意

内部で最初に SFXTimer::Cancel 関数を呼び出して一旦タイマーをキャンセルし、 更に SFBShell::SetTimerEx 関数を呼び出してタイマーを再登録します。

[Note] 前提条件

この関数を呼び出す前に、 SFXTimer::Set 関数を使用してタイマーを設定しておく必要があります。

参照

SFXTimer::Set | SFXTimer::Cancel | SFXTimer::IsValid | SFBShell | BREW API ISHELL_SetTimerEx


SFXTimer::Set
タイマーを設定します。
[ public ]
Void Set(
    SFXCallback::CallbackSPP spp   // コールバック関数
    VoidPtr reference              // コールバック関数に渡すデータ(参照値)
);

解説

この関数は、スケジューリングのために、 タイマー(コールバック関数とコールバック関数に渡すデータ)を設定します。

内部で最初に SFXTimer::Cancel 関数を呼び出すので、 この関数を実行する前にスケジュールされていたタイマーはキャンセルされます。

[Note] 注意

この関数を実行した後に、 SFXTimer::Schedule 関数を呼び出してタイマーをスケジュールします(コールバックを登録します)。

[Note] 注意

この関数は、内部で SFXCallback::Set 関数を呼び出して、 引数に指定したコールバック関数とコールバック関数に渡すデータを、 このタイマーが内部で保持する、 BREW API AEECallback 構造体の pfnNotify メンバと pNotifyData メンバに設定します。

参照

SFXTimer::Schedule | SFXTimer::Cancel | SFXTimer::GetProcedure | SFXTimer::GetReference | SFXCallback::Set | BREW API AEECallback