package IO::Compress::Base ;
require 5.004 ;
use strict ;
use warnings;
use IO::Compress::Base::Common 2.015 ;
use IO::File ;
use Scalar::Util qw(blessed readonly);
#use File::Glob;
#require Exporter ;
use Carp ;
use Symbol;
use bytes;
our (@ISA, $VERSION);
@ISA = qw(Exporter IO::File);
$VERSION = '2.015';
#Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at
.../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16.
sub saveStatus
{
my $self = shift ;
${ *$self->{ErrorNo} } = shift() + 0 ;
${ *$self->{Error} } = '' ;
return ${ *$self->{ErrorNo} } ;
}
sub saveErrorString
{
my $self = shift ;
my $retval = shift ;
${ *$self->{Error} } = shift ;
${ *$self->{ErrorNo} } = shift() + 0 if @_ ;
return $retval;
}
sub croakError
{
my $self = shift ;
$self->saveErrorString(0, $_[0]);
croak $_[0];
}
sub closeError
{
my $self = shift ;
my $retval = shift ;
my $errno = *$self->{ErrorNo};
my $error = ${ *$self->{Error} };
$self->close();
*$self->{ErrorNo} = $errno ;
${ *$self->{Error} } = $error ;
return $retval;
}
sub error
{
my $self = shift ;
return ${ *$self->{Error} } ;
}
sub errorNo
{
my $self = shift ;
return ${ *$self->{ErrorNo} } ;
}
sub writeAt
{
my $self = shift ;
my $offset = shift;
my $data = shift;
if (defined *$self->{FH}) {
my $here = tell(*$self->{FH});
return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!)
if $here < 0 ;
seek(*$self->{FH}, $offset, SEEK_SET)
or return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ;
defined *$self->{FH}->write($data, length $data)
or return $self->saveErrorString(undef, $!, $!) ;
seek(*$self->{FH}, $here, SEEK_SET)
or return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ;
=1= |