mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-16 10:20:02 +02:00
e2ac7e1ea6
This happened if files were removed (e.g. tables dropped) while the manifest was being built. Reported by Navid Golpayegani.
68 lines
1.5 KiB
Perl
68 lines
1.5 KiB
Perl
package pgBackRest::LibC;
|
|
|
|
use 5.010001;
|
|
use strict;
|
|
use warnings;
|
|
use Carp;
|
|
|
|
require Exporter;
|
|
use AutoLoader;
|
|
|
|
our @ISA = qw(Exporter);
|
|
|
|
# Library version (add .999 during development)
|
|
our $VERSION = '1.15.999';
|
|
|
|
sub libCVersion {return $VERSION};
|
|
|
|
# Items to export into caller's namespace by default. Note: do not export names by default without a very good reason. Use EXPORT_OK
|
|
# instead. Do not simply export all your public functions/methods/constants.
|
|
#
|
|
# This allows declaration use pgBackRest::LibC ':all'; If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
|
|
# will save memory.
|
|
our %EXPORT_TAGS =
|
|
(
|
|
'debug' => [qw(
|
|
UVSIZE
|
|
libCVersion
|
|
)],
|
|
|
|
'checksum' => [qw(
|
|
pageChecksum
|
|
pageChecksumTest
|
|
pageChecksumBuffer
|
|
)],
|
|
);
|
|
|
|
our @EXPORT_OK = (@{$EXPORT_TAGS{'debug'}}, @{$EXPORT_TAGS{'checksum'}});
|
|
|
|
# Nothing is exported by default
|
|
our @EXPORT = qw();
|
|
|
|
# This AUTOLOAD is used to 'autoload' constants from the constant() XS function. Nothing in this function needs to be updated to
|
|
# add new constants.
|
|
sub AUTOLOAD
|
|
{
|
|
my $constname;
|
|
our $AUTOLOAD;
|
|
|
|
($constname = $AUTOLOAD) =~ s/.*:://;
|
|
|
|
croak "&pgBackRest::LibC::constant not defined" if $constname eq 'constant';
|
|
my ($error, $val) = constant($constname);
|
|
|
|
if ($error) { croak $error; }
|
|
{
|
|
no strict 'refs';
|
|
*$AUTOLOAD = sub {$val};
|
|
}
|
|
|
|
goto &$AUTOLOAD;
|
|
}
|
|
|
|
require XSLoader;
|
|
XSLoader::load('pgBackRest::LibC', $VERSION);
|
|
|
|
1;
|
|
__END__
|