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