Commit | Line | Data |
---|---|---|
a02d0f6f | 1 | package IO::Uncompress::Adapter::Identity; |
1a6a8453 | 2 | |
3 | use warnings; | |
4 | use strict; | |
a02d0f6f | 5 | use bytes; |
1a6a8453 | 6 | |
9b5fd1d4 | 7 | use IO::Compress::Base::Common 2.024 qw(:Status); |
1a6a8453 | 8 | |
9 | our ($VERSION); | |
10 | ||
9b5fd1d4 | 11 | $VERSION = '2.024'; |
1a6a8453 | 12 | |
9b5fd1d4 | 13 | use Compress::Raw::Zlib 2.024 (); |
1a6a8453 | 14 | |
15 | sub 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 | ||
31 | sub 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 | ||
54 | sub 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 | |
73 | sub compressedBytes | |
74 | { | |
75 | my $self = shift ; | |
76 | return $self->{UnCompSize} ; | |
77 | } | |
78 | ||
79 | sub uncompressedBytes | |
80 | { | |
81 | my $self = shift ; | |
82 | return $self->{UnCompSize} ; | |
83 | } | |
84 | ||
85 | sub sync | |
86 | { | |
87 | return STATUS_OK ; | |
88 | } | |
89 | ||
90 | sub crc32 | |
91 | { | |
92 | my $self = shift ; | |
93 | return $self->{CRC32}; | |
94 | } | |
95 | ||
96 | sub adler32 | |
97 | { | |
98 | my $self = shift ; | |
99 | return $self->{ADLER32}; | |
100 | } | |
101 | ||
dcfdccf9 | 102 | |
1a6a8453 | 103 | 1; |
104 | ||
105 | __END__ |