libexec/loader (wrapper): executes Bootstrap() runction. libexec/distribute et.al. is a symlink(2) to this loader. See under /usr/local/libexec/fml/ path.
reads /usr/local/etc/fml/main.cf and resolves $fml_version. reset @INC by main.cf value. Since default_config.cf is version dependent, the loader should evaluate the file before it reads ML specific configuration files.
Evaluate @ARGV and resolves which ML specific configuration files we need to load.
load FML::Process::Switch class which is also version dependent.
The loader executes Bootstrap2() and ProcessSwitch() to switch the context to each one such as distribution, command mail et.al. In this time, the loader knows the role from $0 process name.
Exapmle of Polymorphyism: dynamic binding of module and creation of process object in starting the process. FML::Process::Flow describes the flow of process like this:
$process = new FML::Process::SOMETHING; $process->prepare($args); $process->verify_request($args); $process->run($args); $process->finish($args);Each process should probide proper methods under FML::Process:: class.
|FML::Process:: Class Structure||Up||Discussion: Where Function Should Resolve $ml_name And $ml_domain.|
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >