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 83     83   1921 use strict;
  83         164  
  83         2261  
4 83     83   373 use warnings;
  83         169  
  83         1781  
5 83     83   384 use bytes;
  83         173  
  83         413  
6              
7 83     83   2672 use IO::Compress::Base::Common 2.206 qw(:Status);
  83         1524  
  83         9362  
8              
9 83     83   28124 use Compress::Raw::Bzip2 2.206 ;
  83         79914  
  83         46678  
10              
11             our ($VERSION, @ISA);
12             $VERSION = '2.206';
13              
14             sub mkUncompObject
15             {
16 792   100 792 0 2237 my $small = shift || 0;
17 792   50     1891 my $verbosity = shift || 0;
18              
19 792         7636 my ($inflate, $status) = Compress::Raw::Bunzip2->new(1, 1, $small, $verbosity, 1);
20              
21 792 50       2436 return (undef, "Could not create Inflation object: $status", $status)
22             if $status != BZ_OK ;
23              
24 792         5879 return bless {'Inf' => $inflate,
25             'CompSize' => 0,
26             'UnCompSize' => 0,
27             'Error' => '',
28             'ConsumesInput' => 1,
29             } ;
30              
31             }
32              
33             sub uncompr
34             {
35 1099     1099 0 1719 my $self = shift ;
36 1099         2170 my $from = shift ;
37 1099         1294 my $to = shift ;
38 1099         1502 my $eof = shift ;
39              
40 1099         1635 my $inf = $self->{Inf};
41              
42 1099         24411 my $status = $inf->bzinflate($from, $to);
43 1099         2709 $self->{ErrorNo} = $status;
44              
45 1099 100 100     2735 if ($status != BZ_OK && $status != BZ_STREAM_END )
46             {
47 2         24 $self->{Error} = "Inflation Error: $status";
48 2         8 return STATUS_ERROR;
49             }
50              
51              
52 1097 100       8249 return STATUS_OK if $status == BZ_OK ;
53 1095 50       3619 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 455 my $self = shift ;
61              
62 350         2562 my ($inf, $status) = Compress::Raw::Bunzip2->new();
63 350 50       961 $self->{ErrorNo} = ($status == BZ_OK) ? 0 : $status ;
64              
65 350 50       1658 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         1919 $self->{Inf} = $inf;
72              
73 350         673 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__