File Coverage

blib/lib/Net/NBName/NameQuery/RR.pm
Criterion Covered Total %
statement 23 27 85.1
branch 1 2 50.0
condition n/a
subroutine 6 9 66.6
pod 4 5 80.0
total 34 43 79.0


line stmt bran cond sub pod time code
1 2     2   11 use strict;
  2         4  
  2         79  
2 2     2   19 use warnings;
  2         6  
  2         85  
3            
4             package Net::NBName::NameQuery::RR;
5            
6 2     2   11 use vars '$VERSION';
  2         5  
  2         113  
7             $VERSION = "0.26";
8            
9 2     2   11 use vars '@nodetypes';
  2         4  
  2         862  
10             @nodetypes = qw/B-node P-node M-node H-node/;
11            
12             sub new
13             {
14 3     3 0 5 my $class = shift;
15 3         5 my $nb_data = shift;
16 3         8 my ($flags, $packed_address) = unpack("na4", $nb_data);
17 3         13 my $address = join ".", unpack("C4", $packed_address);
18            
19 3         7 my $self = {};
20 3         9 $self->{'address'} = $address;
21 3 50       12 $self->{'G'} = ($flags & 2**15) ? "GROUP" : "UNIQUE";
22 3         8 $self->{'ONT'} = $nodetypes[($flags >> 13) & 3];
23            
24 3         9 bless $self, $class;
25 3         16 return $self;
26             }
27            
28             sub as_string
29             {
30 0     0 1 0 my $self = shift;
31            
32 0         0 return sprintf "%-15s %-6s %-6s\n",
33             $self->{'address'},
34             $self->{'G'},
35             $self->{'ONT'};
36             }
37            
38 3     3 1 19 sub address { return $_[0]->{'address'}; }
39 0     0 1   sub G { return $_[0]->{'G'}; }
40 0     0 1   sub ONT { return $_[0]->{'ONT'}; }
41            
42             1;
43            
44             __END__