Move IO::Compress from ext/ to cpan/
[p5sagit/p5-mst-13.2.git] / cpan / IO-Compress / lib / IO / Uncompress / Adapter / Identity.pm
CommitLineData
a02d0f6f 1package IO::Uncompress::Adapter::Identity;
1a6a8453 2
3use warnings;
4use strict;
a02d0f6f 5use bytes;
1a6a8453 6
10c2b2bb 7use IO::Compress::Base::Common 2.021 qw(:Status);
1a6a8453 8
9our ($VERSION);
10
10c2b2bb 11$VERSION = '2.021';
1a6a8453 12
10c2b2bb 13use Compress::Raw::Zlib 2.021 ();
1a6a8453 14
15sub mkUncompObject
16{
17 my $crc32 = 1; #shift ;
18 my $adler32 = shift;
19
20 bless { 'CompSize' => 0,
21 'UnCompSize' => 0,
22 'wantCRC32' => $crc32,
a02d0f6f 23 'CRC32' => Compress::Raw::Zlib::crc32(''),
1a6a8453 24 'wantADLER32'=> $adler32,
a02d0f6f 25 'ADLER32' => Compress::Raw::Zlib::adler32(''),
dcfdccf9 26 'ConsumesInput' => 1,
27
1a6a8453 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
a02d0f6f 40 $self->{CRC32} = Compress::Raw::Zlib::crc32($_[0], $self->{CRC32})
1a6a8453 41 if $self->{wantCRC32};
42
43 $self->{ADLER32} = Compress::Zlib::adler32($_[0], $self->{ADLER32})
44 if $self->{wantADLER32};
45
46 ${ $_[1] } .= ${ $_[0] };
a02d0f6f 47 ${ $_[0] } = "";
1a6a8453 48 }
49
50 return STATUS_ENDSTREAM if $eof;
51 return STATUS_OK ;
52}
53
54sub reset
55{
a02d0f6f 56 my $self = shift;
57
58 $self->{CompSize} = 0;
59 $self->{UnCompSize} = 0;
e7d45986 60 $self->{CRC32} = Compress::Raw::Zlib::crc32('');
61 $self->{ADLER32} = Compress::Raw::Zlib::adler32('');
a02d0f6f 62
1a6a8453 63 return STATUS_OK ;
64}
65
66
a02d0f6f 67#sub count
68#{
69# my $self = shift ;
70# return $self->{UnCompSize} ;
71#}
1a6a8453 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
dcfdccf9 102
1a6a8453 1031;
104
105__END__