実行の終了点

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)メソッドの呼び出しが優先されます。

Copyright © Cooker All rights reserved.