File Coverage

blib/lib/Net/Frame/Layer/ICMPv6/MLD/Report.pm
Criterion Covered Total %
statement 27 29 93.1
branch 4 8 50.0
condition n/a
subroutine 8 9 88.8
pod 6 6 100.0
total 45 52 86.5


line stmt bran cond sub pod time code
1             #
2             # $Id: Report.pm 49 2009-05-31 13:15:34Z VinsWorldcom $
3             #
4             package Net::Frame::Layer::ICMPv6::MLD::Report;
5 4     4   4969 use strict; use warnings;
  4     4   19  
  4         133  
  4         29  
  4         11  
  4         209  
6              
7 4     4   422 use Net::Frame::Layer qw(:consts :subs);
  4         103582  
  4         2815  
8             our @ISA = qw(Net::Frame::Layer);
9              
10             our @AS = qw(
11             reserved
12             numGroupRecs
13             );
14             __PACKAGE__->cgBuildIndices;
15             __PACKAGE__->cgBuildAccessorsScalar(\@AS);
16              
17             sub new {
18             shift->SUPER::new(
19 2     2 1 30 reserved => 0,
20             numGroupRecs => 0,
21             @_,
22             );
23             }
24              
25 0     0 1 0 sub getLength { 4 }
26              
27             sub pack {
28 1     1 1 223 my $self = shift;
29              
30 1 50       4 my $raw = $self->SUPER::pack('nn',
31             $self->reserved,
32             $self->numGroupRecs
33             ) or return;
34              
35 1         52 return $self->raw($raw);
36             }
37              
38             sub unpack {
39 1     1 1 15 my $self = shift;
40              
41 1 50       3 my ($reserved, $numGroupRecs, $payload) =
42             $self->SUPER::unpack('nn a*', $self->raw)
43             or return;
44              
45 1         31 $self->reserved($reserved);
46 1         11 $self->numGroupRecs($numGroupRecs);
47              
48 1         12 $self->payload($payload);
49              
50 1         9 return $self;
51             }
52              
53             sub encapsulate {
54 1     1 1 7 my $self = shift;
55              
56 1 50       6 return $self->nextLayer if $self->nextLayer;
57              
58 1 50       13 if ($self->payload) {
59 0         0 return 'ICMPv6::MLD::Report::Record';
60             }
61              
62 1         10 NF_LAYER_NONE;
63             }
64              
65             sub print {
66 3     3 1 21 my $self = shift;
67              
68 3         16 my $l = $self->layer;
69 3         46 my $buf .= sprintf
70             "$l: reserved:%d numGroupRecs:%d",
71             $self->reserved, $self->numGroupRecs;
72              
73 3         142 return $buf;
74             }
75              
76             1;
77              
78             __END__