File Coverage

blib/lib/WWW/Opentracker/Stats/Mode/Conn.pm
Criterion Covered Total %
statement 13 13 100.0
branch 1 2 50.0
condition n/a
subroutine 4 4 100.0
pod 1 1 100.0
total 19 20 95.0


line stmt bran cond sub pod time code
1             package WWW::Opentracker::Stats::Mode::Conn;
2              
3 1     1   49591 use strict;
  1         2  
  1         39  
4 1     1   7 use warnings;
  1         1  
  1         34  
5              
6 1         8 use parent qw/
7             WWW::Opentracker::Stats::Mode
8             Class::Accessor::Fast
9 1     1   1051 /;
  1         378  
10              
11              
12             __PACKAGE__->_format('txt');
13             __PACKAGE__->_mode('conn');
14              
15             __PACKAGE__->mk_accessors(qw/_stats/);
16              
17              
18             =head1 NAME
19              
20             WWW::Opentracker::Stats::Mode::Conn
21              
22             =head1 DESCRIPTION
23              
24             Parses the connection statistics from opentracker.
25              
26             =head1 METHODS
27              
28             =head2 parse_stats
29              
30             Args: $self, $payload
31              
32             Decodes the plain text data retrieved from the connection
33             statistics of opentracker.
34              
35             The payload looks like this (no indentation):
36             107
37             36
38             30353 seconds (8 hours)
39             opentracker connections, 0 conns/s :: 0 success/s.
40              
41             =cut
42              
43             sub parse_stats {
44 1     1 1 5 my ($self, $payload) = @_;
45              
46 1 50       17 my ($total, $announces, $seconds, $total_per_sec, $ann_per_sec)
47             = $payload =~ m{\A
48             (\d+) \s+
49             (\d+) \s+
50             (\d+) \s+ seconds \s+ \( \d+ \s+ hours \) \s+
51             opentracker \s+ connections , \s+
52             (\d+) \s+ conns/s \s+ :: \s+ (\d+) \s+ success/s \.
53             }xms
54             or die "Unable to parse payload: $payload";
55              
56 1         11 my %stats = (
57             'total' => $total,
58             'announces' => $announces,
59             'uptime' => $seconds,
60             'total_per_sec' => $total_per_sec,
61             'announces_per_sec' => $ann_per_sec,
62             );
63              
64 1         288 return \%stats;
65             }
66              
67              
68             =head1 SEE ALSO
69              
70             L
71              
72             =head1 AUTHOR
73              
74             Knut-Olav Hoven, Eknutolav@gmail.comE
75              
76             =head1 COPYRIGHT AND LICENSE
77              
78             Copyright (C) 2009 by Knut-Olav Hoven
79              
80             This library is free software; you can redistribute it and/or modify
81             it under the same terms as Perl itself, either Perl version 5.8.8 or,
82             at your option, any later version of Perl 5 you may have available.
83              
84              
85             =cut
86              
87             1;
88