Add ARM files
[dh-make-perl] / dev / arm / libarchive-zip-perl / libarchive-zip-perl-1.18 / debian / libarchive-zip-perl / usr / share / perl5 / Archive / Zip / FileMember.pm
1 package Archive::Zip::FileMember;
2
3 use strict;
4 use vars qw( $VERSION @ISA );
5
6 BEGIN {
7     $VERSION = '1.18';
8     @ISA     = qw ( Archive::Zip::Member );
9 }
10
11 use Archive::Zip qw(
12   :UTILITY_METHODS
13 );
14
15 sub externalFileName {
16     shift->{'externalFileName'};
17 }
18
19 # Return true if I depend on the named file
20 sub _usesFileNamed {
21     my $self     = shift;
22     my $fileName = shift;
23     my $xfn      = $self->externalFileName();
24     return undef if ref($xfn);
25     return $xfn eq $fileName;
26 }
27
28 sub fh {
29     my $self = shift;
30     $self->_openFile()
31       if !defined( $self->{'fh'} ) || !$self->{'fh'}->opened();
32     return $self->{'fh'};
33 }
34
35 # opens my file handle from my file name
36 sub _openFile {
37     my $self = shift;
38     my ( $status, $fh ) = _newFileHandle( $self->externalFileName(), 'r' );
39     if ( !$status ) {
40         _ioError( "Can't open", $self->externalFileName() );
41         return undef;
42     }
43     $self->{'fh'} = $fh;
44     _binmode($fh);
45     return $fh;
46 }
47
48 # Make sure I close my file handle
49 sub endRead {
50     my $self = shift;
51     undef $self->{'fh'};    # _closeFile();
52     return $self->SUPER::endRead(@_);
53 }
54
55 sub _become {
56     my $self     = shift;
57     my $newClass = shift;
58     return $self if ref($self) eq $newClass;
59     delete( $self->{'externalFileName'} );
60     delete( $self->{'fh'} );
61     return $self->SUPER::_become($newClass);
62 }
63
64 1;