File Coverage

blib/lib/IO/Uncompress/Adapter/Bunzip2.pm
Criterion Covered Total %
statement 38 48 79.1
branch 8 12 66.6
condition 6 7 85.7
subroutine 8 13 61.5
pod 0 8 0.0
total 60 88 68.1


line stmt bran cond sub pod time code
1             package IO::Uncompress::Adapter::Bunzip2;
2              
3 87     87   1691 use strict;
  87         137  
  87         2626  
4 87     87   312 use warnings;
  87         166  
  87         3440  
5 87     87   373 use bytes;
  87         141  
  87         525  
6              
7 87     87   2754 use IO::Compress::Base::Common 2.221 qw(:Status);
  87         1429  
  87         10706  
8              
9 87     87   28537 use Compress::Raw::Bzip2 2.218 ;
  87         85447  
  87         46327  
10              
11             our ($VERSION, @ISA);
12             $VERSION = '2.221';
13              
14             sub mkUncompObject
15             {
16 798   100 798 0 1863 my $small = shift || 0;
17 798   50     1577 my $verbosity = shift || 0;
18              
19 798         8674 my ($inflate, $status) = Compress::Raw::Bunzip2->new(1, 1, $small, $verbosity, 1);
20              
21 798 50       2239 return (undef, "Could not create Inflation object: $status", $status)
22             if $status != BZ_OK ;
23              
24 798         5418 return bless {'Inf' => $inflate,
25             'CompSize' => 0,
26             'UnCompSize' => 0,
27             'Error' => '',
28             'ConsumesInput' => 1,
29             } ;
30              
31             }
32              
33             sub uncompr
34             {
35 1105     1105 0 1266 my $self = shift ;
36 1105         1202 my $from = shift ;
37 1105         1173 my $to = shift ;
38 1105         1245 my $eof = shift ;
39              
40 1105         1625 my $inf = $self->{Inf};
41              
42 1105         26327 my $status = $inf->bzinflate($from, $to);
43 1105         2623 $self->{ErrorNo} = $status;
44              
45 1105 100 100     2304 if ($status != BZ_OK && $status != BZ_STREAM_END )
46             {
47 2         15 $self->{Error} = "Inflation Error: $status";
48 2         4 return STATUS_ERROR;
49             }
50              
51              
52 1103 100       6984 return STATUS_OK if $status == BZ_OK ;
53 1101 50       3154 return STATUS_ENDSTREAM if $status == BZ_STREAM_END ;
54 0         0 return STATUS_ERROR ;
55             }
56              
57              
58             sub reset
59             {
60 350     350 0 413 my $self = shift ;
61              
62 350         2578 my ($inf, $status) = Compress::Raw::Bunzip2->new();
63 350 50       939 $self->{ErrorNo} = ($status == BZ_OK) ? 0 : $status ;
64              
65 350 50       1453 if ($status != BZ_OK)
66             {
67 0         0 $self->{Error} = "Cannot create Inflate object: $status";
68 0         0 return STATUS_ERROR;
69             }
70              
71 350         1987 $self->{Inf} = $inf;
72              
73 350         620 return STATUS_OK ;
74             }
75              
76             sub compressedBytes
77             {
78 0     0 0   my $self = shift ;
79 0           $self->{Inf}->compressedBytes();
80             }
81              
82             sub uncompressedBytes
83             {
84 0     0 0   my $self = shift ;
85 0           $self->{Inf}->uncompressedBytes();
86             }
87              
88             sub crc32
89             {
90 0     0 0   my $self = shift ;
91             #$self->{Inf}->crc32();
92             }
93              
94             sub adler32
95             {
96 0     0 0   my $self = shift ;
97             #$self->{Inf}->adler32();
98             }
99              
100             sub sync
101             {
102 0     0 0   my $self = shift ;
103             #( $self->{Inf}->inflateSync(@_) == BZ_OK)
104             # ? STATUS_OK
105             # : STATUS_ERROR ;
106             }
107              
108              
109             1;
110              
111             __END__