diff options
| author | fukachan <fukachan> | 2001-11-03 11:49:20 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-11-03 11:49:20 +0000 |
| commit | 8f56aef14e4391f85e10592af7d46a4fcb2a94f3 (patch) | |
| tree | 2441989081598429e7d1d4cfd9f42c1fa06429d3 /fml/lib/FML/Process/ThreadTrack.pm | |
| parent | 3cea8ef0f1b2ead5ac1d7f4f3de4254d520a6181 (diff) | |
| download | fml8-8f56aef14e4391f85e10592af7d46a4fcb2a94f3.tar.gz fml8-8f56aef14e4391f85e10592af7d46a4fcb2a94f3.tar.bz2 fml8-8f56aef14e4391f85e10592af7d46a4fcb2a94f3.zip | |
Mail::ThreadTrack based tread tracking system
FML::Process::TicketSystem -> FML::Process::ThreadTrack
Diffstat (limited to 'fml/lib/FML/Process/ThreadTrack.pm')
| -rw-r--r-- | fml/lib/FML/Process/ThreadTrack.pm | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/fml/lib/FML/Process/ThreadTrack.pm b/fml/lib/FML/Process/ThreadTrack.pm new file mode 100644 index 00000000..74e881a4 --- /dev/null +++ b/fml/lib/FML/Process/ThreadTrack.pm @@ -0,0 +1,158 @@ +#!/usr/local/bin/perl -w +#-*- perl -*- +# +# Copyright (C) 2000-2001 Ken'ichi Fukamachi +# All rights reserved. +# +# $FML: ThreadTrack.pm,v 1.16 2001/06/10 11:24:12 fukachan Exp $ +# + +package FML::Process::ThreadTrack; + +use vars qw($debug @ISA @EXPORT @EXPORT_OK); +use strict; +use Carp; + +use FML::Process::Kernel; +use FML::Log qw(Log LogWarn LogError); +use FML::Config; + +@ISA = qw(FML::Process::Kernel); + + +=head1 NAME + +FML::Process::ThreadTrack -- primitive thread tracking system + +=head1 SYNOPSIS + +See C<Mail::ThreadTrack> module. + +=head1 DESCRIPTION + +This class drives ticket system in the top level. +The ticket database is maintained by each ticket system model, +which is called in C<run()> method. + +=head1 METHOD + +=head2 C<new($args)> + +create a C<FML::Process::Kernel> object and return it. + +=head2 C<prepare()> + +dummy. + +=cut + + +sub new +{ + my ($self, $args) = @_; + my $type = ref($self) || $self; + my $curproc = new FML::Process::Kernel $args; + return bless $curproc, $type; +} + + +# Descriptions: dummy to avoid to take data from STDIN +# Arguments: $self $args +# Side Effects: +# Return Value: none +sub prepare +{ + ; +} + + +=head2 C<run($args)> + +call the actual ticket system. +It supports only 'list' and 'close' commands. + +=cut + +sub run +{ + my ($curproc, $args) = @_; + my $config = $curproc->{ config }; + my $argv = $args->{ ARGV }; + my $command = $argv->[ 0 ] || 'list'; + + # argumente for thread track module + my $ml_name = $config->{ ml_name }; + my $ticket_db_dir = $config->{ ticket_db_dir }; + my $spool_dir = $config->{ spool_dir }; + my $ttargs = { + logfp => \&Log, + fd => \*STDOUT, + db_base_dir => $ticket_db_dir, + ml_name => $ml_name, + spool_dir => $spool_dir, + }; + + use Mail::ThreadTrack; + my $thread = new Mail::ThreadTrack $ttargs; + $thread->set_mode('text'); + + if ($command eq 'list') { + $thread->show_summary(); + } + elsif ($command eq 'close') { + $curproc->lock(); + + my $thread_id = $argv->[ 2 ]; + my $args = { + thread_id => $thread_id, + status => 'close', + }; + if ($thread_id) { + $thread->set_status($curproc, $args); + } + else { + croak("specify \$thread_id"); + } + + $curproc->unlock(); + } + else { + croak("unknown command=$command\n"); + } +} + + +sub DESTROY {} + +# Descriptions: dummy routine to avoid errors +# since we need all methods defined in FML::Process::Flow. +# Arguments: $self $args +# Side Effects: none +# Return Value: none +sub AUTOLOAD +{ + my ($curproc, $args) = @_; + 1; +} + + +=head1 AUTHOR + +Ken'ichi Fukamachi + +=head1 COPYRIGHT + +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. + +=head1 HISTORY + +FML::Process::Kernel appeared in fml5 mailing list driver package. +See C<http://www.fml.org/> for more details. + +=cut + + +1; |
