fml のブートしていく様

fml のブートしていく様について

- libexec/loader (wrapper)
  Bootstrap() を実行する。
  - /etc/fml/main.cf を読み込む。 読み込むと fml のバージョンが分かる。 default_config.cf はバージョン依存であるので、 ここでまずバージョンを評価しなければいけないことに注意。
  - ( fml.pl を例にとると) @ARGV を評価し、 どのＭＬの config.cf 群をロードすればいいのかを準備する。
  - 次に libexec/fml/バージョン/process_switch ( バージョン依存 )ファイルを ロードする。
    - ProcessSwitch() を実行し、 配送用、コマンドモード用などの各 プログラム/プロセスなどへ制御を移す(分岐する)。 この時は $0 から自分の名前を知り、 どのプロセスへ分岐すればいいのかを判断している。
    - (ポリモーフィズムの例) モジュールをダイナミックバインディングし、 該当するプロセスオブジェクトを生成する。 そして、プロセスをスタートさせる。
      FML::Process::Flow でどのように実行するかが 定義されています。具体的には

              $process = new FML::Process::なにか;
              $process->prepare($args);
              $process->run($args);
              $process->finish($args);

      などと書きます。 各プロセスは、それぞれについて適当な関数を 用意する必要があります。

  ○ クラスの階層構造？ FML::Process::Distribute-| FML::Process::Command -|>- FML::Process::Kernel FML::Process::Mead -| | |-> FML::Parse |-> FML::Config |-> FML::Log |-> ... その他 ...