diff options
| author | fukachan <fukachan> | 2004-07-23 15:21:23 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2004-07-23 15:21:23 +0000 |
| commit | 490d4269214ec44227147cf6a85b9ed6458688aa (patch) | |
| tree | 749c2c6f4bcbcdee11e52d2f8e249c895e4f677e | |
| parent | 98d371d712259ef740a005bde8f73a3f5fd10145 (diff) | |
| download | fml8-490d4269214ec44227147cf6a85b9ed6458688aa.tar.gz fml8-490d4269214ec44227147cf6a85b9ed6458688aa.tar.bz2 fml8-490d4269214ec44227147cf6a85b9ed6458688aa.zip | |
change constructor argument (but not used yet).
fix error messages.
fix comments.
| -rw-r--r-- | fml/lib/FML/IPC/Queue.pm | 65 |
1 files changed, 46 insertions, 19 deletions
diff --git a/fml/lib/FML/IPC/Queue.pm b/fml/lib/FML/IPC/Queue.pm index b5597ad8..d170cc7b 100644 --- a/fml/lib/FML/IPC/Queue.pm +++ b/fml/lib/FML/IPC/Queue.pm @@ -4,7 +4,7 @@ # All rights reserved. This program is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. # -# $FML: Queue.pm,v 1.6 2004/04/13 11:28:16 fukachan Exp $ +# $FML: Queue.pm,v 1.7 2004/04/17 06:57:01 fukachan Exp $ # package FML::IPC::Queue; @@ -18,7 +18,7 @@ $debug = 0; =head1 NAME -FML::IPC::Queue - basic message queue operation +FML::IPC::Queue - basic message queue operation. =head1 SYNOPSIS @@ -42,23 +42,20 @@ list up queue et.al. constructor. -=head2 append($msg) - -append user defined message $msg into the message queue. - =cut # Descriptions: constructor. -# Arguments: OBJ($self) HASH_REF($args) +# Arguments: OBJ($self) OBJ($curproc) # Side Effects: create an object # Return Value: OBJ sub new { - my ($self, $args) = @_; - my ($type) = ref($self) || $self; - my $queue = []; - my $me = { + my ($self, $curproc) = @_; + my ($type) = ref($self) || $self; + my $queue = []; + my $me = { + _curproc => $curproc || undef, _queue => $queue, _on_disk => 0, }; @@ -66,6 +63,17 @@ sub new } +=head2 append($msg) + +append user defined message $msg into the message queue. + +=head2 list() + +list up queue. + +=cut + + # Descriptions: append user defined message $msg into the message queue. # Arguments: OBJ($self) VAR_ARGS($msg) # Side Effects: update message queue $self->{ _queue } @@ -101,11 +109,6 @@ sub list } -=head1 - -=cut - - # Descriptions: insert message into $queue_dir. # Arguments: OBJ($self) OBJ($msg) # Side Effects: create queue file in $queue_dir. @@ -129,6 +132,9 @@ sub _append_msg_into_queue_dir if ($msg->can('dump')) { $msg->dump($wh); } + else { + $self->logerror("IPC: fail to dump message"); + } } $wh->close(); } @@ -137,7 +143,7 @@ sub _append_msg_into_queue_dir # initialized to unlocked state (lock == executable bit). chmod 0644, $tmpfile; unless (rename($tmpfile, $q_file)) { - croak("cannot rename $tmpfile $q_file"); + $self->logerror("IPC: cannot rename $tmpfile $q_file"); } else { print STDERR "$q_file created.\n" if $debug; @@ -150,7 +156,7 @@ sub _append_msg_into_queue_dir } -# Descriptions: +# Descriptions: list up queue. # Arguments: OBJ($self) # Side Effects: none # Return Value: ARRAY_REF @@ -171,7 +177,7 @@ sub _list_up_msg_in_queue_dir ENTRY: while ($entry = $dh->read()) { next ENTRY if $entry =~ /^\./o; - next ENTRY if $entry =~ /^\,/o; + next ENTRY if $entry =~ /^\,/o; # ignore temporary file. $file = File::Spec->catfile($queue_dir, $entry); if (-f $file) { @@ -191,6 +197,9 @@ sub _list_up_msg_in_queue_dir push(\@\$queue, \$msg) if defined \$msg; push(\@\$remove, \$file); }; + if ($@) { + $self->logerror($@); + } } } } @@ -265,6 +274,24 @@ sub use_object_class } +# Descriptions: logging wrapper. +# Arguments: OBJ($self) STR($error) +# Side Effects: none +# Return Value: none +sub logerror +{ + my ($self, $error) = @_; + my $curproc = $self->{ _curproc } || undef; + + if (defined $curproc) { + $curproc->logerror($error); + } + else { + warn($error); + } +} + + # Descriptions: destructor. # Arguments: OBJ($self) # Side Effects: remove files to be picked up. |
