summaryrefslogtreecommitdiff
path: root/fml/libexec
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-04-27 00:33:09 +0000
committerfukachan <fukachan>2001-04-27 00:33:09 +0000
commit947b99d413ec72823fbb481ba0a2be6fa7a4618a (patch)
tree8d5bbc56393011c93aa88c31fc31eb6946117a31 /fml/libexec
parenta31dc1c1c2eccce42a0be2e0415c4215b5690693 (diff)
downloadfml8-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.html115
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>
-=&gt;
-<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>