File Coverage

blib/lib/SyslogScan/Usage.pm
Criterion Covered Total %
statement 6 64 9.3
branch 0 2 0.0
condition n/a
subroutine 2 16 12.5
pod 10 14 71.4
total 18 96 18.7


line stmt bran cond sub pod time code
1             package SyslogScan::Usage;
2              
3             $VERSION = 0.20;
4 0     0 0   sub Version { $VERSION };
5              
6 3     3   2651 use SyslogScan::Volume;
  3         9  
  3         158  
7              
8             my $SEND = 0;
9             my $RECEIVE = 1;
10             my $BROADCAST = 2;
11              
12             my @ROLE_LIST = ($BROADCAST,$SEND,$RECEIVE);
13              
14 3     3   20 use strict;
  3         6  
  3         2459  
15              
16             sub new
17             {
18 0     0 1   my $type = shift;
19              
20 0           my $self = ();
21              
22 0           my $role;
23 0           foreach $role (@ROLE_LIST)
24             {
25 0           $$self[$role] = new SyslogScan::Volume;
26             }
27 0           bless($self,$type);
28 0           return $self;
29             }
30              
31             sub addUsage
32             {
33 0     0 1   my $self = shift;
34 0           my $other = shift;
35 0           my $role;
36 0           foreach $role (@ROLE_LIST)
37             {
38 0           $$self[$role] -> addVolume($$other[$role]);
39             }
40             }
41              
42             sub registerSend
43             {
44 0     0 1   my $self = shift;
45 0           my $size = shift;
46            
47 0           $self -> register($size,$SEND);
48             }
49              
50             sub registerReceive
51             {
52 0     0 1   my $self = shift;
53 0           my $size = shift;
54            
55 0           $self -> register($size,$RECEIVE);
56             }
57              
58             sub registerBroadcast
59             {
60 0     0 1   my $self = shift;
61 0           my $size = shift;
62            
63 0           $self -> register($size,$BROADCAST);
64             }
65              
66             sub getBroadcastVolume
67             {
68 0     0 1   my $self = shift;
69 0           return $$self[$BROADCAST] -> deepCopy();
70             }
71              
72             sub getSendVolume
73             {
74 0     0 1   my $self = shift;
75 0           return $$self[$SEND] -> deepCopy();
76             }
77              
78             sub getReceiveVolume
79             {
80 0     0 1   my $self = shift;
81 0           return $$self[$RECEIVE] -> deepCopy();
82             }
83              
84             sub register
85             {
86 0     0 0   my $self = shift;
87 0           my $size = shift;
88 0           my $role = shift;
89              
90 0 0         defined($$self[$role]) or
91             die "illegal Role: $role";
92              
93 0           $$self[$role] -> addSize($size);
94             }
95              
96             sub persist
97             {
98 0     0 0   my $self = shift;
99 0           my $outFH = shift;
100              
101 0           my $role;
102 0           foreach $role (@ROLE_LIST)
103             {
104 0           $$self[$role] -> persist($outFH);
105             }
106             }
107              
108             sub restore
109             {
110 0     0 0   my $type = shift;
111 0           my $inFH = shift;
112              
113 0           my $self = ();
114              
115 0           my $role;
116 0           foreach $role (@ROLE_LIST)
117             {
118 0           $$self[$role] =
119             SyslogScan::Volume -> restore($inFH);
120             }
121              
122 0           bless($self,$type);
123              
124 0           return $self;
125             }
126              
127             sub dump
128             {
129 0     0 1   my $self = shift;
130 0           my $retString;
131              
132             my $role;
133 0           foreach $role (@ROLE_LIST)
134             {
135 0           $retString .= "\t\t". $$self[$role] -> dump();
136             }
137 0           return $retString."\n";
138             }
139              
140             sub deepCopy
141             {
142 0     0 1   my $self = shift;
143 0           my $copy = ();
144            
145 0           my $role;
146 0           foreach $role (@ROLE_LIST)
147             {
148 0           $$copy[$role] = $$self[$role] -> deepCopy();
149             }
150              
151 0           bless($copy,ref($self));
152 0           return $copy;
153             }
154              
155             1;
156              
157             __END__