前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXResponderPointer
レスポンダクラス用のスマートポインタークラス(テンプレートクラス)です。
#include <SFXResponderPointer.h.hpp>
class SFXResponderPointer;
SFMTYPEDEFCLASS(SFXResponderPointer)

継承図

SFXResponderPointer クラスの継承図

協調図

SFXResponderPointer クラスの協調図

解説

SFXResponderPointer クラスは、 参照カウントオブジェクトクラスに対して、参照カウントを自動管理する機能を提供します。

参照

レスポンダクラス

メンバ

コンストラクタ/デストラクタ
SFXResponderPointer( Void )
SFXResponderPointer クラスのコンストラクタです。
SFXResponderPointer( SFXResponderPointer< M > const & param )
SFXResponderPointer クラスのコンストラクタです。
SFXResponderPointer( SFXResponderPointer< T > const & param )
SFXResponderPointer クラスのコンストラクタです。
SFXResponderPointer( T * pointer , Bool increment = true )
SFXResponderPointer クラスのコンストラクタです。
パブリック関数
Void Attach( T * pointer )
インスタンスの解放責任を受けます。
T * Detach( Void )
SFXResponderPointer クラスが管理するインスタンスの解放責任を譲ります。
static
SFXResponderPointer< T > const &
EmptyInstance( Void )
null を表す SFXResponderPointer インスタンスを取得します。
T * Get( Void )
保持しているインスタンスのポインタを取得します。
Void Release( Void )
SFXResponderPointer を解放します。
Void Set( SFXResponderPointer< M > const & param )
インスタンスを設定します。
Void Set( SFXResponderPointer< T > const & param )
インスタンスを設定します。
Void Set( T * pointer , Bool increment = true )
インスタンスを設定します。
T * operator->( Void )
保持しているインスタンスのメンバにアクセスします。
SFXResponderPointer< T > & operator=( SFXResponderPointer< M > const & param )
インスタンスを代入します。
SFXResponderPointer< T > & operator=( SFXResponderPointer< T > const & param )
インスタンスを代入します。
Bool operator==( SFXResponderPointer< T > const & left , SFXResponderPointer< M > const & right )
== の関係を判定します。
Bool operator==( SFXResponderPointer< T > const & left , SFYResponderConstPtr right )
== の関係を判定します。
Bool operator==( SFYResponderConstPtr left , SFXResponderPointer< T > const & right )
== の関係を判定します。
Bool operator!=( SFXResponderPointer< T > const & left , SFXResponderPointer< M > const & right )
!= の関係を判定します。
Bool operator!=( SFXResponderPointer< T > const & left , SFYResponderConstPtr right )
!= の関係を判定します。
Bool operator!=( SFYResponderConstPtr left , SFXResponderPointer< T > const & right )
!= の関係を判定します。
グローバル関数
SFXResponderPointer< T > const_pointer_cast( SFXResponderPointer< M > const & param )
SFXResponderPointer 同士で const_cast を行います。
SFXResponderPointer< T > reinterpret_pointer_cast( SFXResponderPointer< M > const & param )
SFXResponderPointer 同士で reinterpret_cast を行います。
SFXResponderPointer< T > static_pointer_cast( SFXResponderPointer< M > const & param )
SFXResponderPointer 同士で static_cast を行います。
Bool operator==( SFXResponderPointer< T > const & left , SFXResponderPointer< M > const & right )
== の関係を判定します。
Bool operator==( SFXResponderPointer< T > const & left , SFYResponderConstPtr right )
== の関係を判定します。
Bool operator==( SFYResponderConstPtr left , SFXResponderPointer< T > const & right )
== の関係を判定します。
T & operator*( Void )
保持しているインスタンスを取得します。
Bool operator!=( SFXResponderPointer< T > const & left , SFXResponderPointer< M > const & right )
!= の関係を判定します。
Bool operator!=( SFXResponderPointer< T > const & left , SFYResponderConstPtr right )
!= の関係を判定します。
Bool operator!=( SFYResponderConstPtr left , SFXResponderPointer< T > const & right )
!= の関係を判定します。

SFXResponderPointer::SFXResponderPointer
SFXResponderPointer クラスのコンストラクタです。
[ public, explicit ]
SFXResponderPointer(Void);
[ public ]
SFXResponderPointer(
    SFXResponderPointer< M > const & param   // コピーする SFXResponderPointer のリファレンス
);
[ public ]
SFXResponderPointer(
    SFXResponderPointer< T > const & param   // コピーする SFXResponderPointer のリファレンス
);
[ public, explicit ]
SFXResponderPointer(
    T * pointer             // 格納するインスタンスのポインタ
    Bool increment = true   // 参照カウンタを増加させるかどうかを指定する
);

解説

このコンストラクタは、 指定されたインスタンスを設定します。

[Note] 注意

引数が SFXResponderPointer インスタンスの場合は、コピーされます。

デフォルトでは、 設定するインスタンスの参照カウンタはインクリメントされます。

参照

SFXResponderPointer::Set


SFXResponderPointer::Attach
インスタンスの解放責任を受けます。
[ public ]
Void Attach(
    T * pointer   // 解放責任を譲るインスタンスのポインタ
);

解説

この関数は、指定されたインスタンスの解放責任を受けます。

[Note] 注意

SFXResponderPointer クラスが解放責任を受けると、 SFXResponderPointer クラスがインスタンスを管理するようになり、 参照カウントの自動管理が行われます。

Attach 関数は

    SFXResponderPointer::Set(address, false);

を実行するのと同じです。

参照

SFXResponderPointer::Detach


SFXResponderPointer::Detach
SFXResponderPointer クラスが管理するインスタンスの解放責任を譲ります。
[ public ]
T * Detach(Void);

戻り値

SFXResponderPointer クラスが内部に保持しているインスタンス。

解説

この関数は、 SFXResponderPointer クラスが内部に保持しているインスタンスの解放責任を譲ります。

[Note] 注意

SFXResponderPointer クラスは内部で保持していたインスタンスを管理しなくなり、 参照カウントの自動管理が行われなくなります。

参照

SFXResponderPointer::Attach


SFXResponderPointer::EmptyInstance
null を表す SFXResponderPointer インスタンスを取得します。
[ public, static ]
SFXResponderPointer< T > const & EmptyInstance(Void);

戻り値

null を表す SFXResponderPointer インスタンスのリファレンス。

解説

この関数は、 null を表す SFXResponderPointer インスタンスを取得します。

[Note] 注意

この関数を利用すれば、 null を表す SFXResponderPointer インスタンスの const 参照を返すことができます。

内部実装

この関数の内部実装は以下の通りです。

template <typename T>
/*public static */inline SFXResponderPointer<T> const& SFXResponderPointer<T>::EmptyInstance(Void)
{
    return static_cast<SFXResponderPointer<T> const&>(SFAResponderPointer::EmptyInstance());
}// SFXResponderPointer<T>::EmptyInstance //

/*protected static */SFAResponderPointerConstRef SFAResponderPointer::EmptyInstance(Void)
{
    static UInt64Const                          result[cluster64of(SFAResponderPointer)] = {
        0
    };

    return *reinterpret_cast<SFAResponderPointerConstPtr>(result);
}// SFAResponderPointer::EmptyInstance //
[Note] cluster64of マクロ

cluster64of マクロは、 8 バイト境界にアラインしたときに 8 バイトのクラスターがいくつ必要になるかを計算するマクロです。


SFXResponderPointer::Get
保持しているインスタンスのポインタを取得します。
[ public, const ]
T * Get(Void);

戻り値

保持しているインスタンスのポインタ。

解説

この関数は、 保持しているインスタンスのポインタを取得します。

参照

SFXResponderPointer::Set


SFXResponderPointer::Release
SFXResponderPointer を解放します。
[ public ]
Void Release(Void);

解説

この関数は、 内部に保持しているインスタンスを解放します。

[Note] 注意

SFXResponderPointer クラスが内部に保持しているインスタンスの参照カウンタをデクリメントし、 インスタンスの管理をしなくなります。

参照

SFXResponderPointer::Set


SFXResponderPointer::Set
インスタンスを設定します。
[ public ]
Void Set(
    SFXResponderPointer< M > const & param   // 設定する SFXResponderPointer のリファレンス
);
[ public ]
Void Set(
    SFXResponderPointer< T > const & param   // 設定する SFXResponderPointer のリファレンス
);
[ public ]
Void Set(
    T * pointer             // 格納するインスタンスのポインタ
    Bool increment = true   // 参照カウンタを増加させるかどうか
);

解説

この関数は、 指定されたインスタンスを設定します。

[Note] 注意

旧いインスタンスの参照カウンタをデクリメントしてから、 新しいインスタンスのポインタを設定します。

デフォルトでは、 新しいインスタンスの参照カウンタはインクリメントされます。

参照

SFXResponderPointer::Get | SFXResponderPointer::SFXResponderPointer | SFXResponderPointer::operator=


const_pointer_cast
SFXResponderPointer 同士で const_cast を行います。
SFXResponderPointer< T > const_pointer_cast(
    SFXResponderPointer< M > const & param   // キャストするポインタ
);

解説

この関数は、 SFXResponderPointer 同士で const_cast を行います。

[Note] 注意

SFXResponderPointer 同士の const_cast は、 const_pointer_cast 関数を使用して行います。

参照

static_pointer_cast | reinterpret_pointer_cast | SFXResponderPointer


reinterpret_pointer_cast
SFXResponderPointer 同士で reinterpret_cast を行います。
SFXResponderPointer< T > reinterpret_pointer_cast(
    SFXResponderPointer< M > const & param   // キャストするポインタ
);

解説

この関数は、 SFXResponderPointer 同士で reinterpret_cast を行います。

[Note] 注意

SFXResponderPointer 同士の reinterpret_cast は、 reinterpret_pointer_cast 関数を使用して行います。

参照

static_pointer_cast | const_pointer_cast | SFXResponderPointer


static_pointer_cast
SFXResponderPointer 同士で static_cast を行います。
SFXResponderPointer< T > static_pointer_cast(
    SFXResponderPointer< M > const & param   // キャストするポインタ
);

解説

この関数は、 SFXResponderPointer 同士で static_cast を行います。

[Note] 注意

SFXResponderPointer 同士の static_cast は、 static_pointer_cast 関数を使用して行います。

参照

const_pointer_cast | reinterpret_pointer_cast | SFXResponderPointer


SFXResponderPointer::operator->
保持しているインスタンスのメンバにアクセスします。
[ public, const ]
T * operator->(Void);

戻り値

保持しているインスタンスのポインタ。

解説

このオペレータは、 保持しているインスタンスのメンバにアクセスします。

[Note] -> オペレータのオーバーロード

オーバーロードされた -> オペレータでは、 戻り値に対して事前定義された -> オペレータが更に作用されます。

SFXResponderPointer::Get 関数は保持しているインスタンスのポインタを返すだけですが、 SFXResponderPointer::operator-> オペレータは保持しているインスタンスのポインタを取得し、 更に事前定義された -> オペレータを呼び出し、 保持しているインスタンスのメンバにアクセスします。

参照

operator* | SFXResponderPointer::Get


SFXResponderPointer::operator=
インスタンスを代入します。
[ public ]
SFXResponderPointer< T > & operator=(
    SFXResponderPointer< M > const & param   // 代入する SFXResponderPointer のリファレンス
);
[ public ]
SFXResponderPointer< T > & operator=(
    SFXResponderPointer< T > const & param   // 代入する SFXResponderPointer のリファレンス
);

解説

このオペレータは、 インスタンスのポインタを代入します。

[Note] 注意

このオペレータは、 内部で SFXResponderPointer::Set 関数を呼び出します。

参照

SFXResponderPointer::Set


operator==
== の関係を判定します。
[ public, friend ]
Bool operator==(
    SFXResponderPointer< T > const & left    // 比較する SFXResponderPointer のリファレンス
    SFXResponderPointer< M > const & right   // 比較する SFXResponderPointer のリファレンス
);
[ public, friend ]
Bool operator==(
    SFXResponderPointer< T > const & left   // 比較する SFXResponderPointer のリファレンス
    SFYResponderConstPtr right              // 比較する SFYResponder のポインタ
);
[ public, friend ]
Bool operator==(
    SFYResponderConstPtr left                // 比較する SFYResponder のポインタ
    SFXResponderPointer< T > const & right   // 比較する SFXResponderPointer のリファレンス
);

戻り値

  • 等しいとき: true
  • 異なるとき: false

解説

このオペレータは、 == の関係を判定します。

参照

operator!=


operator*
保持しているインスタンスを取得します。
[ const ]
T & operator*(Void);

戻り値

保持しているインスタンス。

解説

このオペレータは、 保持しているインスタンスを取得します。

参照

SFXResponderPointer::operator->


operator!=
!= の関係を判定します。
[ public, friend ]
Bool operator!=(
    SFXResponderPointer< T > const & left    // 比較する SFXResponderPointer のリファレンス
    SFXResponderPointer< M > const & right   // 比較する SFXResponderPointer のリファレンス
);
[ public, friend ]
Bool operator!=(
    SFXResponderPointer< T > const & left   // 比較する SFXResponderPointer のリファレンス
    SFYResponderConstPtr right              // 比較する SFYResponder のポインタ
);
[ public, friend ]
Bool operator!=(
    SFYResponderConstPtr left                // 比較する SFYResponder のポインタ
    SFXResponderPointer< T > const & right   // 比較する SFXResponderPointer のリファレンス
);

戻り値

  • 異なるとき: true
  • 等しいとき: false

解説

このオペレータは、 == の関係を判定します。

参照

operator==