summaryrefslogtreecommitdiff
path: root/fml/lib/FML/Process
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-01-29 04:32:34 +0000
committerfukachan <fukachan>2001-01-29 04:32:34 +0000
commit1b3a879cf3fc9dee8d23fe452060953c3ff8adf6 (patch)
tree72852a294243f6e4c277481b89f937b29c83d092 /fml/lib/FML/Process
parent221ff1e67b47a843c3f5209803da0daa35506f3b (diff)
downloadfml8-1b3a879cf3fc9dee8d23fe452060953c3ff8adf6.tar.gz
fml8-1b3a879cf3fc9dee8d23fe452060953c3ff8adf6.tar.bz2
fml8-1b3a879cf3fc9dee8d23fe452060953c3ff8adf6.zip
change hierarchy of routines. The current flow is as follows:
loader -> process_switch -> FML::Process::Flow -> each process 1. loader resolves version dependence 2. process_switch loads requred package 3. main::ProcessStart() (exporeted to main:: at FML::Process::Flow) controlls flow. 4. details of each flow is described in FML::Process::Something et. al.
Diffstat (limited to 'fml/lib/FML/Process')
-rw-r--r--fml/lib/FML/Process/Flow.pm82
-rw-r--r--fml/lib/FML/Process/Kernel.pm3
2 files changed, 85 insertions, 0 deletions
diff --git a/fml/lib/FML/Process/Flow.pm b/fml/lib/FML/Process/Flow.pm
new file mode 100644
index 00000000..fe54e0d6
--- /dev/null
+++ b/fml/lib/FML/Process/Flow.pm
@@ -0,0 +1,82 @@
+#-*- perl -*-
+#
+# Copyright (C) 2001 Ken'ichi Fukamachi
+# All rights reserved. This program is free software; you can
+# redistribute it and/or modify it under the same terms as Perl itself.
+#
+# $Id$
+# $FML$
+#
+
+package FML::Process::Flow;
+use strict;
+use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD);
+use Carp;
+
+=head1 NAME
+
+FML::__HERE_IS_YOUR_MODULE_NAME__.pm - what is this
+
+=head1 SYNOPSIS
+
+=head1 DESCRIPTION
+
+=head1 CLASSES
+
+=head1 METHODS
+
+=item C<new()>
+
+... what is this ...
+
+=head1 AUTHOR
+
+__YOUR_NAME__
+
+=head1 COPYRIGHT
+
+Copyright (C) 2001 __YOUR_NAME__
+
+All rights reserved. This program is free software; you can
+redistribute it and/or modify it under the same terms as Perl itself.
+
+=head1 HISTORY
+
+FML::__HERE_IS_YOUR_MODULE_NAME__.pm appeared in fml5.
+
+=cut
+
+
+# Descriptions: drives basic flow
+# 1. initialize processes and load configurations from *.cf
+# switch to each process according with $0 and @ARGV.
+# 2. parse the incoming message(mail)
+# 3. start the main transaction
+# lock, execute main routine, unlock
+# 4. inform error messages, clean up and more ...
+# Arguments: $self $args
+# Side Effects:
+# ProcessSwtich() is exported to main:: Name Space.
+# Return Value: none
+sub main::ProcessStart
+{
+ my ($pkg, $args) = @_;
+
+ # create a new process object
+ my $process = $pkg->new($args);
+
+ # e.g. parse the incoming message (e.g. STDIN)
+ $process->prepare($args);
+
+ # validate the request e.g. permit post from the sender ...
+ $process->verify_request($args);
+
+ # start main transaction
+ $process->run($args);
+
+ # closing the process
+ $process->finish($args);
+}
+
+
+1;
diff --git a/fml/lib/FML/Process/Kernel.pm b/fml/lib/FML/Process/Kernel.pm
index b94f9fa9..0fc4cb6d 100644
--- a/fml/lib/FML/Process/Kernel.pm
+++ b/fml/lib/FML/Process/Kernel.pm
@@ -12,6 +12,9 @@ package FML::Process::Kernel;
use strict;
use Carp;
+
+use FML::Process::Flow;
+
use FML::Parse;
use FML::Header;
use FML::Config;