[前へ] [目次へ] [次へ]

ExClosureCaller (script/fgs/system.fges)


このクラスはスレッドを越境してクロージャを呼び出すためのクラスです。
このクラスのインスタンスにクロージャを設定することにより、
異なるスレッドからクロージャを呼び出せるように見せかけます。

このクラスはクロージャを設定したスレッドを記憶し、そのスレッドに対してスレッド越境呼出を行います。
そのため、このクラスを介してクロージャを呼び出しているスレッドは完了まで他の処理ができません。


●継承/注入

   このクラスは継承/注入をしていません。

●インターフェイスとインターフェイスメソッド

   このクラスはインターフェイスの実装宣言をしていません。

●クラスメソッド

   このクラスはクラスメソッドを持っていません。

●クラスメンバメソッド

名前概要
internal操作メソッド FarCallerスレッド越境処理の中継メソッド
public設定メソッド Set呼び出すクロージャを設定します
public操作メソッド Call設定されているクロージャを呼び出します

●クラス共有変数

   このクラスはクラス共有変数を持っていません。

●インスタンス変数

名前概要
internal exc_threadクロージャを呼び出すスレッド
internal exc_closure呼び出すクロージャ
internal exc_active呼び出し中フラグ




ExClosureCaller::FarCaller

internal void FarCaller(editable Any? ret_obj,...)

   設定されているクロージャを呼び出し、戻り値を呼び出し元に返すための相手スレッド側メソッド。
   このメソッドはクロージャを呼び出すスレッドで実行されます。
   
editable Any? ret_obj :戻り値を代入するオブジェクト。
      空参照を指定した場合は無視します。
可変長引数:クロージャの引数としてそのまま渡されます。

先頭へ


ExClosureCaller::Set

public Bool Set( INativeClosure call_target)

   Call メソッドで呼び出すクロージャとスレッドを設定します。
   スレッドはこのメソッドを呼び出したスレッドが設定されます。
   クロージャを指定する場合、このメソッドはクロージャを作成したスレッドで呼び出さなければいけません。
   
戻り値:設定に成功した場合は真を返します。

INativeClosure call_target :呼び出すクロージャ。

先頭へ


ExClosureCaller::Call

public Bool Call(editable Any? ret_obj,...)

   このオブジェクトに設定されているクロージャを呼び出します。
   
戻り値:呼び出しに成功した場合は真を返します。

editable Any? ret_obj :クロージャの戻り値を代入するオブジェクト。
      空参照を指定した場合は無視します。
可変長引数:クロージャの引数としてそのまま渡されます。

先頭へ


ExClosureCaller::exc_thread

internal HThread exc_thread

   クロージャを呼び出すスレッドのハンドル。

先頭へ


ExClosureCaller::exc_closure

internal ConstPointer<INativeClosure> exc_closure

   呼び出すクロージャ。

先頭へ


ExClosureCaller::exc_active

internal Bool exc_active

   クロージャの呼び出し処理中フラグ。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2023/02/01