Home Cooker Classes Others Rice CookerGX
Cooker  >  exitpoint
実行の終了

exit ポイント

Cookerのプログラムの実行は、start() メソッドの呼び出しと実行で始まります。そして、呼び出された start() メソッドは普通、終わりを迎えます。

start() メソッドの終わりが、プログラム実行の終了なのでしょうか?

Cooker では、この問いに対する答えは、No です。例えば、start() メソッドで割り当てられたイベントハンドラがイベントの発生を待っているかもしれません。タイマーハンドラが、メソッドの呼び出しを繰り返しているかもしれません。


Cooker においてプログラム実行の終了とは、インタープリタが置き換わることです。

新しいプログラムを実行するために、.cook ファイルが再び読み込まれて、新しいインタープリタが生成されます。そして、古いインタープリタと新しいインタープリタが置き換えられます。

これが、古いインタープリタにとってのプログラム実行の終了です。そして、これを実行の exit ポイントと呼びます。

open method void end()

実行の exit ポイントで、古いインタープリタの後始末が必要かもしれません。例えば、ハンドラ類の割り当てを取り消すなどです。

この後始末のために、Cooker は、インタープリタが置き換えられる直前に end() メソッドの呼び出しを試みます。

ただし、end() メソッドの定義は任意なので、end() メソッドがあれば呼び出しますし、無ければ何もしません。これが、start() メソッドとは異なる点です。

以下に、end() メソッド定義のアウトラインを示します。

1:

open method void end()

2:

// メソッド定義。

3:

endmethod

上のコード例の様に end() は、"end" という名前を持つ open で引数と返り値の無いメソッドです。

返り値が有っても大丈夫ですが、無視されるので無意味です。

end() メソッドの呼び出しは、Cooker Ver 1.0.2.0 からサポートされています。

Copyright © Rice All rights reserved.