NAME
    FML::Process::Flow - the process flow.

SYNOPSIS
       use FML::Process::Flow;
       FML::Process::Flow::ProcessStart($obj, $args);

    where $obj is an FML::Process::"something" object and $args is HASH
    REFERENCE prepared by "FML::Process::Switch".

DESCRIPTION
    This module describes the fml program flow. All methods, even if dummy,
    should be implemented in each FML::Process::CLASS. This flow is same
    among fml processes such as programs kicked by MTA, command line
    interfaces and CGI's.

        # create a new process object
        my $process = $pkg->new($args);

        # XXX private method to show help ASAP.
        # XXX we need to trap here since $process object is clarified after
        # XXX $pkg->new() above.
        $process->sysflow_trap_help($args);

        # e.g. parse the incoming message (e.g. STDIN)
        $process->prepare($args);

        # validate the request, for example,
        #    permit post from the sender,
        #    check the mail loop or not ...
        $process->verify_request($args);

        # start main transaction
        $process->run($args);

        # closing the process
        $process->finish($args);

        # clean up tmporary files
        $process->tmp_file_cleanup();

CODING STYLE
    See "http://www.fml.org/software/FNF/" on fml coding style guide.

AUTHOR
    Ken'ichi Fukamachi

COPYRIGHT
    Copyright (C) 2001,2002,2003,2004,2005,2006,2008 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.

HISTORY
    FML::Process::Flow first appeared in fml8 mailing list driver package.
    See "http://www.fml.org/" for more details.

