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 / MockFileHandle.pm
diff --git a/dev/arm/libarchive-zip-perl/libarchive-zip-perl-1.18/debian/libarchive-zip-perl/usr/share/perl5/Archive/Zip/MockFileHandle.pm b/dev/arm/libarchive-zip-perl/libarchive-zip-perl-1.18/debian/libarchive-zip-perl/usr/share/perl5/Archive/Zip/MockFileHandle.pm
new file mode 100644 (file)
index 0000000..bb97a2b
--- /dev/null
@@ -0,0 +1,69 @@
+package Archive::Zip::MockFileHandle;
+
+# Output file handle that calls a custom write routine
+# Ned Konz, March 2000
+# This is provided to help with writing zip files
+# when you have to process them a chunk at a time.
+
+use strict;
+
+use vars qw{$VERSION};
+
+BEGIN {
+    $VERSION = '1.18';
+    $VERSION = eval $VERSION;
+}
+
+sub new {
+    my $class = shift || __PACKAGE__;
+    $class = ref($class) || $class;
+    my $self = bless(
+        {
+            'position' => 0,
+            'size'     => 0
+        },
+        $class
+    );
+    return $self;
+}
+
+sub eof {
+    my $self = shift;
+    return $self->{'position'} >= $self->{'size'};
+}
+
+# Copy given buffer to me
+sub print {
+    my $self         = shift;
+    my $bytes        = join( '', @_ );
+    my $bytesWritten = $self->writeHook($bytes);
+    if ( $self->{'position'} + $bytesWritten > $self->{'size'} ) {
+        $self->{'size'} = $self->{'position'} + $bytesWritten;
+    }
+    $self->{'position'} += $bytesWritten;
+    return $bytesWritten;
+}
+
+# Called on each write.
+# Override in subclasses.
+# Return number of bytes written (0 on error).
+sub writeHook {
+    my $self  = shift;
+    my $bytes = shift;
+    return length($bytes);
+}
+
+sub binmode { 1 }
+
+sub close { 1 }
+
+sub clearerr { 1 }
+
+# I'm write-only!
+sub read { 0 }
+
+sub tell { return shift->{'position'} }
+
+sub opened { 1 }
+
+1;