summaryrefslogtreecommitdiff
path: root/fml/lib/FML/Process/ThreadTrack.pm
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-11-03 11:49:20 +0000
committerfukachan <fukachan>2001-11-03 11:49:20 +0000
commit8f56aef14e4391f85e10592af7d46a4fcb2a94f3 (patch)
tree2441989081598429e7d1d4cfd9f42c1fa06429d3 /fml/lib/FML/Process/ThreadTrack.pm
parent3cea8ef0f1b2ead5ac1d7f4f3de4254d520a6181 (diff)
downloadfml8-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.pm158
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;