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