Commit 8bfbab66 authored by sikeda's avatar sikeda
Browse files

[change] [Notice contributors] Logic to handle messages in processes of Sympa...

[change] [Notice contributors] Logic to handle messages in processes of Sympa has been highly refactored.  See the documentation Sympa::Internals::Workflow for overview.


git-svn-id: https://subversion.renater.fr/sympa/branches/sympa-6.2-branch@12604 05aa8bb8-cd2b-0410-b1d7-8918dfa770ce
parent f8495522
......@@ -23,7 +23,8 @@
nobase_nodist_modules_DATA = \
Sympa/Constants.pm
nobase_dist_modules_DATA = \
Sympa/Internals.pod
Sympa/Internals.pod \
Sympa/Internals/Workflow.pod
nobase_modules_DATA = \
Sympa.pm \
Sympa/Admin.pm \
......
......@@ -39,7 +39,7 @@ __END__
=head1 NAME
Sympa::Internals - List of Sympa internal modules
Sympa::Internals - Sympa internals
=head1 DESCRIPTION
......@@ -56,9 +56,13 @@ To know details of each module, run:
=back
=head2 Workflow
See L<Sympa::Internals::Workflow>.
=head1 SEE ALSO
L<sympa(1)>.
L<sympa_toc(1)>.
I<Sympa, Mailing List Management Software - Reference Manual>.
L<https://www.sympa.org/manual/>.
......
=encoding utf-8
=head1 NAME
Sympa::Internals::Workflow - Overview on workflow of Sympa
=head1 DESCRIPTION
Following picture roughly describes interaction among several classes in
workflow of Sympa. For more details see documentation on each class.
<<archived.pl>>
Archive => [ProcessArchive] => (list archive)
<<bounced.pl>>
Bounce => [ProcessBounce] => Tracking
<<bulk.pl>>
Outgoing => [ProcessOutgoing] => (Mailer)
<<sympa_automatic.pl>>
Automatic => [ProcessAutomatic] => Incoming
<<sympa_msg.pl>>
Digest::Collection => [ProcessDigest]
:
*1
+-> (reject or ignore)
/
+---> [DoCommand]
/ :
Incoming => [ProcessIncoming] *2
\ +-> (reject)
+-> [DoForward] => (Mailer) /
\ +-> [ToEditor] => Outgoing
+-> [DoMessage] /
\ /---> [ToHeld] => Held
*2 +-> [AuthorizeMessage]
: / \---> [ToModeration] => Mod.
Held => [ProcessHeld] -------+ \
+-> [DistributeMessage]
*2 +--> (reject) / \
: / / \
Moderation => [ProcessModeration] / \
\ / \
+-----------+ \
\
+-------------------------------------------+
\
[TransformIncoming]
<<wwsympa.fcgi>> \
[ToArchive] => Archive
(list archive) \
=> [ResendArchive] -- [TransformOutgoing] -+
\ \
[ToDigest] => Digest \
\ \
+---------------+-> [ToList] => Outgoing
+-> [TransformDigestFinal]
/ \
<<Template sending>> / +----------> [ToOutgoing] => Outgoing
/ /
(mail template) => [ProcessTemplate] ---------> [ToAlarm] => Alarm
: \
*1 +----------> [ToMailer] => (Mailer)
=begin comment
These have not been implemented yet.
<<task_manager.pl>>
Task => [ProcessTask] => Task
<<Others>>
Request => [ValidateAdd]
Request => [ValidateDel]
Request => [ValidateClose]
Request => [ValidatePurge]
=end comment
=head3 Legend
=over
=item C<I<ClassName>>
Spool class. Prefix C<Sympa::Spool::> is omitted.
=over
=item C<Alarm>
=item C<Outgoing>
=item C<Tracking>
L<Sympa::Alarm>, L<Sympa::Bulk> and L<Sympa::Tracking> classes
(they are named such by historical reason).
=back
=item C<[I<ClassName>]>
Workflow class. Prefix C<Sympa::Spindle::> is omitted.
=item C<(Mailer)>
L<Sympa::Mailer> class.
=item C<(list archive)>
L<Sympa::Archive> class.
=item C<(mail template)>
L<Sympa::Message::Template> class.
=back
=head1 SEE ALSO
L<sympa_toc(1)>, L<Sympa::Internals>, L<Sympa::Spindle>, L<Sympa::Spool>.
=cut
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment