diff options
| author | fukachan <fukachan> | 2001-04-27 00:33:09 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-04-27 00:33:09 +0000 |
| commit | 947b99d413ec72823fbb481ba0a2be6fa7a4618a (patch) | |
| tree | 8d5bbc56393011c93aa88c31fc31eb6946117a31 /fml/libexec | |
| parent | a31dc1c1c2eccce42a0be2e0415c4215b5690693 (diff) | |
| download | fml8-947b99d413ec72823fbb481ba0a2be6fa7a4618a.tar.gz fml8-947b99d413ec72823fbb481ba0a2be6fa7a4618a.tar.bz2 fml8-947b99d413ec72823fbb481ba0a2be6fa7a4618a.zip | |
merged to tutorial
Diffstat (limited to 'fml/libexec')
| -rw-r--r-- | fml/libexec/boot.ja.html | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/fml/libexec/boot.ja.html b/fml/libexec/boot.ja.html deleted file mode 100644 index bd59bca3..00000000 --- a/fml/libexec/boot.ja.html +++ /dev/null @@ -1,115 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML> -<HEAD> -<TITLE> -fml のブートしていく様 -</TITLE> -<META http-equiv="Content-Type" - content="text/html; charset=EUC-JP"> -</HEAD> - -<BODY BGCOLOR="#E6E6FA"> -<!-- ================== body =========================================== --> - -<P>fml のブートしていく様について - -<PRE> -イメージ - -libexec/loader -> FML::Process::Switch -> - FML::Process::Flow -> - FML::Process::それぞれのプログラムのモジュール -</PRE> -=> -<A HREF="../lib/FML/Process/programs.ja.html"> -FML::Process::それぞれのプログラムのモジュールについて -</A> - -<HR> -ブートしていく順番 - -<UL> - <LI> libexec/loader (wrapper) - <BR> - Bootstrap() を実行する。 - fml.pl などはこの loader へのシンボリックリンクです。 - /usr/local/libexec/fml/ を参照して下さい。 - - <UL> - <LI> /etc/fml/main.cf を読み込む。 - 読み込むと fml のバージョンが分かる。 - default_config.cf はバージョン依存であるので、 - ここでまずバージョンを評価しなければいけないことに注意。 - - <LI> ( fml.pl を例にとると) - @ARGV を評価し、 - どのMLの config.cf 群をロードすればいいのかを準備する。 - 変数の評価と展開には libexec/Standalone.pm を用います。 - <BR> - これはあまりよくないような気がします。 - libexec/ を @INC に加えないといけないこと、 - libexec/loader と libexec/Standalone.pm の2つが - 入れ換えないといけないものになってしまうので。 - - <LI> 次に - FML::Process::Switch - ( バージョン依存 )ファイルを - ロードします。 - <UL> - <LI> - Bootstrap2() および ProcessSwitch() を実行し、 - 配送用、コマンドモード用などの各 - プログラム/プロセスなどへ制御を移します(分岐する)。 - この時は $0 から自分の名前を知り、 - どのプロセスへ分岐すればいいのかを判断しています。 - - <LI> - (ポリモーフィズムの例) - モジュールをダイナミックバインディングし、 - 該当するプロセスオブジェクトを生成する。 - そして、プロセスをスタートさせます。 - <BR> - FML::Process::Flow の中に、 - どのように fml プロセスを実行するかが - 定義されています。 -<PRE> - $process = new FML::Process::なにか; - $process->prepare($args); - $process->run($args); - $process->finish($args); -</PRE> - のように実行されています。 - 各プロセスは、それぞれについて適当な関数を - 用意してください。 - - </UL> -</UL> - -<HR> -<P> -○ loader から次々と呼ばれていく様子は、例えば配送処理の場合、次のよう -になる。 - -libexec/loader は FML::Process::Switch をロードし、 -FML::Process::Distribute を実行すると決める。 - -FML::Process::Flow::ProcessStart() は引数として -FML::Process::Distribute を渡され、 -FML::Process::Distribute を実行していく。 - -<P> -○ クラスの階層構造? - -<PRE> -FML::Process::Distribute >-| -FML::Process::Command >-|-- FML::Process::Kernel -FML::Process::Mead >-| | - |-use-a FML::Parse - |-use-a FML::Config - |-use-a FML::Log - |-use-a ... その他 ... -</PRE> - -<!-- =================================================================== --> -</BODY> -</HTML> |
