summaryrefslogtreecommitdiff
path: root/fml/doc/ja/tutorial/internals/bootloader.sgml
diff options
context:
space:
mode:
authorfukachan <fukachan>2003-03-09 08:29:08 +0000
committerfukachan <fukachan>2003-03-09 08:29:08 +0000
commit670cfb4d0b2abc942517a1d706349ba81697f498 (patch)
treece6057bc112b2edfc7eeb8604f6081fe3ecc0c2a /fml/doc/ja/tutorial/internals/bootloader.sgml
parentc62651a5a1cac63e14d7c186c9c1433f84c6c97d (diff)
downloadfml8-670cfb4d0b2abc942517a1d706349ba81697f498.tar.gz
fml8-670cfb4d0b2abc942517a1d706349ba81697f498.tar.bz2
fml8-670cfb4d0b2abc942517a1d706349ba81697f498.zip
merge 01_* with tutorial/
Diffstat (limited to 'fml/doc/ja/tutorial/internals/bootloader.sgml')
-rw-r--r--fml/doc/ja/tutorial/internals/bootloader.sgml90
1 files changed, 78 insertions, 12 deletions
diff --git a/fml/doc/ja/tutorial/internals/bootloader.sgml b/fml/doc/ja/tutorial/internals/bootloader.sgml
index 56fe2d9d..f436e301 100644
--- a/fml/doc/ja/tutorial/internals/bootloader.sgml
+++ b/fml/doc/ja/tutorial/internals/bootloader.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: bootloader.sgml,v 1.7 2002/07/02 10:39:35 fukachan Exp $
+ $FML: bootloader.sgml,v 1.8 2002/07/06 14:55:18 fukachan Exp $
-->
<chapter id="bootloader">
@@ -13,18 +13,32 @@
めに、本章で述べるようなブートストラップの過程があります。
<screen>
-fml が boot していくイメージ
-
-libexec/loader ->
- FML::Process::Switch ->
- FML::Process::Flow ->
- FML::Process::それぞれのプログラムのモジュール
+fml (libexec/distribute) が boot していくイメージ
+
+ functions class
+ ----------------------------------------
+
+ main::Bootstrap() libexec/loader
+ |
+ V
+ main::Bootstrap2() FML::Process::Switch
+ |
+ V
+ ProcessSwitch() FML::Process::Switch
+ |
+ |
+ | switch to ($obj = FML::Process:Distribute)
+ |
+ V
+ ProcessStart($obj,$args) FML::Process::Flow
</screen>
</para>
-<sect1>
- <title> 例: 配送の場合 </title>
+<sect1 id="bootloader.example.distribute">
+ <title>
+ 例: 配送の場合
+ </title>
<para>
loader から次々と呼ばれていく様子は、例えば配送処理の場合、次のよう
@@ -59,8 +73,10 @@ FML::Process::Distribute を実行していくという流れになります。
</sect1>
-<sect1>
- <title> FML::Process:: クラスの階層構造 </title>
+<sect1 id="bootloader.classes">
+ <title>
+ FML::Process:: クラスの階層構造
+ </title>
<para>
<screen>
@@ -77,7 +93,7 @@ FML::Process::Mead >-| |
</sect1>
-<sect1>
+<sect1 id="bootloader.classes2">
<title>
プロセス実行時に使われるモジュール群
</title>
@@ -167,4 +183,54 @@ $process->finish($args);
</sect1>
+<sect1 id="bootloader.resolv.mlxxx">
+ <title>
+ ml_name と ml_domain の値はどこで解決するのが正しいか?
+ </title>
+
+<para>
+<screen>
+main::Bootstrap()
+
+ main.cf から fml のバージョン依存性を解く
+
+ hints を渡す (CGI のみ)
+ ◎ CGI だけ
+ 嘘の入力がありうる
+ そのため、loader に hints として
+ ml_domain や ml_name がハードコードされている。
+
+
+main::Bootstrap2()
+ProcessSwitch()
+
+ 使うモジュール( Process::なんか )を決める
+ 読み込むべき cf ファイルの決定(なんで?)
+ ライブラリパスの決定や @INC の修正など
+
+ hints を渡す?使う? (CGI のみ?)
+
+
+ProcessStart($obj,$args)
+
+ 処理本体のスタート
+
+ new
+
+ prepare
+ ml_name と ml_domain の決定
+ CGI からの入力を解析する
+ hints を使う?(CGI のみ?)
+
+ 読み込むべき cf ファイルの決定
+
+ parse
+ メールを読み込む
+ コマンドラインを解析する
+</screen>
+</para>
+
+</sect1>
+
+
</chapter>