1package IO::Uncompress::Adapter::Identity; 2 3use warnings; 4use strict; 5use bytes; 6 7use IO::Compress::Base::Common 2.024 qw(:Status); 8 9our ($VERSION); 10 11$VERSION = '2.024'; 12 13use Compress::Raw::Zlib 2.024 (); 14 15sub mkUncompObject 16{ 17 my $crc32 = 1; #shift ; 18 my $adler32 = shift; 19 20 bless { 'CompSize' => 0, 21 'UnCompSize' => 0, 22 'wantCRC32' => $crc32, 23 'CRC32' => Compress::Raw::Zlib::crc32(''), 24 'wantADLER32'=> $adler32, 25 'ADLER32' => Compress::Raw::Zlib::adler32(''), 26 'ConsumesInput' => 1, 27 28 } ; 29} 30 31sub uncompr 32{ 33 my $self = shift; 34 my $eof = $_[2]; 35 36 if (defined ${ $_[0] } && length ${ $_[0] }) { 37 $self->{CompSize} += length ${ $_[0] } ; 38 $self->{UnCompSize} = $self->{CompSize} ; 39 40 $self->{CRC32} = Compress::Raw::Zlib::crc32($_[0], $self->{CRC32}) 41 if $self->{wantCRC32}; 42 43 $self->{ADLER32} = Compress::Zlib::adler32($_[0], $self->{ADLER32}) 44 if $self->{wantADLER32}; 45 46 ${ $_[1] } .= ${ $_[0] }; 47 ${ $_[0] } = ""; 48 } 49 50 return STATUS_ENDSTREAM if $eof; 51 return STATUS_OK ; 52} 53 54sub reset 55{ 56 my $self = shift; 57 58 $self->{CompSize} = 0; 59 $self->{UnCompSize} = 0; 60 $self->{CRC32} = Compress::Raw::Zlib::crc32(''); 61 $self->{ADLER32} = Compress::Raw::Zlib::adler32(''); 62 63 return STATUS_OK ; 64} 65 66 67#sub count 68#{ 69# my $self = shift ; 70# return $self->{UnCompSize} ; 71#} 72 73sub compressedBytes 74{ 75 my $self = shift ; 76 return $self->{UnCompSize} ; 77} 78 79sub uncompressedBytes 80{ 81 my $self = shift ; 82 return $self->{UnCompSize} ; 83} 84 85sub sync 86{ 87 return STATUS_OK ; 88} 89 90sub crc32 91{ 92 my $self = shift ; 93 return $self->{CRC32}; 94} 95 96sub adler32 97{ 98 my $self = shift ; 99 return $self->{ADLER32}; 100} 101 102 1031; 104 105__END__ 106