実行の終了点
exit ポイント
Riceスクリプトの実行は、start(browser)/start()メソッドの呼び出しで始まります。そして、呼び出されたメソッドは普通、終わりを迎えます。このメソッドの終わりが、プログラム実行の終了なのでしょうか?
Cookerでは、答えはNoです。開始メソッドが終了しても、イベントハンドラがイベントの発生を待っているかもしれません。タイマーハンドラが、メソッドの呼び出しを繰り返しているかもしれません。
Cookerにおいてスクリプトの実行終了とは、インタープリタが置き換わることです。
新しいスクリプトを実行するために、.cookファイルが再び読み込まれて、新しいインタープリタが生成されます。そして、古いインタープリタと新しいインタープリタが置き換えられます。
これが、古いインタープリタにとっての実行終了です。この時に後始末が必要かもしれません。例えば、ハンドラ類の割り当てを取り消すなどです。
この後始末のために、Cookerはメソッドの呼び出しを試みます。
この実行終了のためのメソッドと、その呼び出しをexitポイントと呼びます。Cookerではmainクラスの二つのメソッドがexitポイントになれます。
open method void end(browser)
open method void end()
これらのメソッドの定義は任意です。メソッドがあれば呼び出しますし無ければ何もしません。
open method void end(browser)
Cookerは二つのブラウザとScriptタイルを持っています。実行されたタイルと対応するブラウザが必要ならば、このメソッドを定義してください。
メソッドの引数にbrowserクラスのインスタンスが渡されます。引数は、左側のタイルから実行されたならMain-ブラウザです、そうでなければSub-ブラウザです。
1: | open method void end(browser br) |
2: | // メソッド定義。 |
3: | endmethod |
system.cookが、このメソッドを定義しているときは、引数はMain-ブラウザです。
open method void end()
実行されたタイルとブラウザの対応が重要でなければ、このメソッドを定義してください。
1: | open method void end() |
2: | // メソッド定義。 |
3: | endmethod |
優先順位
mainクラスに両方のメソッドがある時は、end(browser)メソッドの呼び出しが優先されます。