da4a726248cab01d9825682e2622bdab4d53e272
[spider.git] / cmd / stat / msg.pl
1 #
2 # show all the values on a message header
3 #
4 # $Id$
5 #
6
7 my ($self, $line) = @_;
8 my @list = split /\s+/, $line;                # generate a list of msg nos
9 my @out;
10
11 return (1, $self->msg('e5')) if $self->priv < 1;
12
13 if (@list == 0) {
14         my $ref;
15         push @out, "Work Queue Keys";
16         push @out, map { " $_" } sort keys %DXMsg::work;
17         push @out, "Busy Queue Data";
18         foreach $ref (sort {$a->to cmp $b->to} DXMsg::get_all_busy) {
19                 my $msgno = $ref->msgno;
20                 my $stream = $ref->stream;
21                 my $lref = $ref->lines;
22                 my $lines = 0;
23                 $lines = @$lref if $lref;
24                 my $count = $ref->count;
25                 my $to = $ref->to;
26                 my $lastt = $ref->lastt ? " Last Processed: " . cldatetime($ref->lastt) : "";
27                 my $waitt = $ref->waitt ? " Waiting since: " . cldatetime($ref->waitt) : "";
28                 
29                 push @out, " $call -> $to msg: $msgno stream: $stream Count: $count Lines: $lines$lastt$waitt";
30         }
31 } else {
32         foreach my $msgno (@list) {
33                 my $ref = DXMsg::get($msgno);
34                 if ($ref) {
35                         @out = print_all_fields($self, $ref, "Msg Parameters $msgno");
36                 } else {
37                         push @out, $self->msg('m4', $msgno);
38                 }
39                 push @out, "" if @list > 1;
40         }
41 }
42
43 return (1, @out);