前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.0
SFYTracer
トレーサを管理するクラスです。
#include <SFYTracer.h.hpp>
class SFYTracer;
SFMTYPEDEFCLASS(SFYTracer)

協調図

SFYTracer クラスの協調図

解説

トレーサのリストを管理するクラスです。 このクラスの関数は SFYDistributer クラスと SFYResponder クラスを通して利用され、 開発者が直接操作することはありません。

参照

トレーサ | 配信エンジン | レスポンダツリー | ルートレスポンダ | SFYResponder::RegisterTracer | SFYResponder::UnregisterTracer | SFYResponder::ClearTracer | SFYApplication::RegisterTracer | SFYApplication::UnregisterTracer | SFYApplication::ClearTracer | SFYDistributer | SFYResponder | SFYApplication | SFZRoot | SFXEvent | SFXEventRange

メンバ

OrderEnum
イベントの処理順序を表します。
RuleRec
処理順序と配信条件と重複条件のセットを表します。
StateEnum
子レスポンダへの配信条件を表します。

SFYTracer::OrderEnum
イベントの処理順序を表します。
enum OrderEnum {
    ORDER_FORWARD  = 0,    // 前面から配信
    ORDER_BACKWARD         // 背面から配信
};
SFMTYPEDEFTYPE(OrderEnum)

SFYTracer::RuleRec
処理順序と配信条件と重複条件のセットを表します。
SFMTYPEDEFSTRUCT(RuleRec)
struct RuleRec {
    OrderEnum    order;       // 処理順序
    StateEnum    state;       // 配信条件
    Bool         overload;    // 重複条件
};

解説

SFYDistributer::RegisterTracer 関数や SFYResponder::RegisterTracer 関数で利用する構造体です。

使用例

複数のトレーサをまとめて登録する方法

static SFXEventRange::AtomRecConst range[] = {
    {            SFEVT_APP_START,           SFEVT_APP_START, SFP16_BEGIN, SFP16_END},
    {             SFEVT_APP_STOP,            SFEVT_APP_STOP, SFP16_BEGIN, SFP16_END},
    {           SFEVT_APP_RESUME,          SFEVT_APP_RESUME, SFP16_BEGIN, SFP16_END},
    {          SFEVT_APP_SUSPEND,         SFEVT_APP_SUSPEND, SFP16_BEGIN, SFP16_END}
};
static SFYTracer::RuleRecConst rule[lengthof(range)] = {
    {  SFYTracer::ORDER_BACKWARD,      SFYTracer::STATE_ALL,        true},
    {   SFYTracer::ORDER_FORWARD,      SFYTracer::STATE_ALL,        true},
    {  SFYTracer::ORDER_BACKWARD,      SFYTracer::STATE_ALL,        true},
    {   SFYTracer::ORDER_FORWARD,      SFYTracer::STATE_ALL,        true}
};
SFCError error;

error = RegisterTracer(atomic_cast(range), rule, lengthof(range));

SFYTracer::StateEnum
子レスポンダへの配信条件を表します。
enum StateEnum {
    STATE_ALL     = 0,    // すべてのレスポンダに配信
    STATE_VISIBLE,        // 可視のレスポンダに配信
    STATE_ACTIVE,         // 上述かつ活性のレスポンダに配信
    STATE_ENABLE,         // 上述かつ操作可能なレスポンダに配信
    STATE_FOCUS,          // 上述かつフォーカスされているレスポンダに配信
    STATE_NONE            // 配信しない
};
SFMTYPEDEFTYPE(StateEnum)