"Fossies" - the Fresh Open Source Software Archive

Member "IO-Compress-2.093/lib/IO/Uncompress/Adapter/Bunzip2.pm" (7 Dec 2019, 2042 Bytes) of package /linux/privat/IO-Compress-2.093.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Perl source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "Bunzip2.pm" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 2.092_vs_2.093.

    1 package IO::Uncompress::Adapter::Bunzip2;
    2 
    3 use strict;
    4 use warnings;
    5 use bytes;
    6 
    7 use IO::Compress::Base::Common 2.093 qw(:Status);
    8 
    9 use Compress::Raw::Bzip2 2.093 ;
   10 
   11 our ($VERSION, @ISA);
   12 $VERSION = '2.093';
   13 
   14 sub mkUncompObject
   15 {
   16     my $small     = shift || 0;
   17     my $verbosity = shift || 0;
   18 
   19     my ($inflate, $status) = new Compress::Raw::Bunzip2(1, 1, $small, $verbosity, 1);
   20 
   21     return (undef, "Could not create Inflation object: $status", $status)
   22         if $status != BZ_OK ;
   23 
   24     return bless {'Inf'           => $inflate,
   25                   'CompSize'      => 0,
   26                   'UnCompSize'    => 0,
   27                   'Error'         => '',
   28                   'ConsumesInput' => 1,
   29                  }  ;     
   30     
   31 }
   32 
   33 sub uncompr
   34 {
   35     my $self = shift ;
   36     my $from = shift ;
   37     my $to   = shift ;
   38     my $eof  = shift ;
   39 
   40     my $inf   = $self->{Inf};
   41 
   42     my $status = $inf->bzinflate($from, $to);
   43     $self->{ErrorNo} = $status;
   44 
   45     if ($status != BZ_OK && $status != BZ_STREAM_END )
   46     {
   47         $self->{Error} = "Inflation Error: $status";
   48         return STATUS_ERROR;
   49     }
   50 
   51     
   52     return STATUS_OK        if $status == BZ_OK ;
   53     return STATUS_ENDSTREAM if $status == BZ_STREAM_END ;
   54     return STATUS_ERROR ;
   55 }
   56 
   57 
   58 sub reset
   59 {
   60     my $self = shift ;
   61 
   62     my ($inf, $status) = new Compress::Raw::Bunzip2();
   63     $self->{ErrorNo} = ($status == BZ_OK) ? 0 : $status ;
   64 
   65     if ($status != BZ_OK)
   66     {
   67         $self->{Error} = "Cannot create Inflate object: $status"; 
   68         return STATUS_ERROR;
   69     }
   70 
   71     $self->{Inf} = $inf;
   72 
   73     return STATUS_OK ;
   74 }
   75 
   76 sub compressedBytes
   77 {
   78     my $self = shift ;
   79     $self->{Inf}->compressedBytes();
   80 }
   81 
   82 sub uncompressedBytes
   83 {
   84     my $self = shift ;
   85     $self->{Inf}->uncompressedBytes();
   86 }
   87 
   88 sub crc32
   89 {
   90     my $self = shift ;
   91     #$self->{Inf}->crc32();
   92 }
   93 
   94 sub adler32
   95 {
   96     my $self = shift ;
   97     #$self->{Inf}->adler32();
   98 }
   99 
  100 sub sync
  101 {
  102     my $self = shift ;
  103     #( $self->{Inf}->inflateSync(@_) == BZ_OK) 
  104     #        ? STATUS_OK 
  105     #        : STATUS_ERROR ;
  106 }
  107 
  108 
  109 1;
  110 
  111 __END__
  112