2017-06-09 23:51:41 +02:00
|
|
|
####################################################################################################################################
|
2017-10-23 01:07:17 +02:00
|
|
|
# Base IO Module
|
2017-06-09 23:51:41 +02:00
|
|
|
####################################################################################################################################
|
2020-03-10 21:12:44 +02:00
|
|
|
package pgBackRestTest::Common::Io::Base;
|
2017-06-09 23:51:41 +02:00
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings FATAL => qw(all);
|
|
|
|
use Carp qw(confess);
|
|
|
|
use English '-no_match_vars';
|
|
|
|
|
|
|
|
use Exporter qw(import);
|
|
|
|
our @EXPORT = qw();
|
|
|
|
use Scalar::Util qw(blessed);
|
|
|
|
|
2020-03-10 21:41:56 +02:00
|
|
|
use pgBackRestDoc::Common::Log;
|
2017-06-09 23:51:41 +02:00
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# Package name constant
|
|
|
|
####################################################################################################################################
|
|
|
|
use constant COMMON_IO_BASE => __PACKAGE__;
|
|
|
|
push @EXPORT, qw(COMMON_IO_BASE);
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# Default buffer max
|
|
|
|
####################################################################################################################################
|
|
|
|
use constant COMMON_IO_BUFFER_MAX => 4194304;
|
|
|
|
push @EXPORT, qw(COMMON_IO_BUFFER_MAX);
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# new
|
|
|
|
####################################################################################################################################
|
|
|
|
sub new
|
|
|
|
{
|
|
|
|
my $class = shift;
|
|
|
|
|
|
|
|
# Create the class hash
|
|
|
|
my $self = {};
|
|
|
|
bless $self, $class;
|
|
|
|
|
|
|
|
# Assign function parameters, defaults, and log debug info
|
|
|
|
(
|
|
|
|
my $strOperation,
|
|
|
|
$self->{strId},
|
|
|
|
) =
|
|
|
|
logDebugParam
|
|
|
|
(
|
|
|
|
__PACKAGE__ . '->new', \@_,
|
|
|
|
{name => 'strId', trace => true},
|
|
|
|
);
|
|
|
|
|
|
|
|
# Return from function and log return values if any
|
|
|
|
return logDebugReturn
|
|
|
|
(
|
|
|
|
$strOperation,
|
|
|
|
{name => 'self', value => $self}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# error - throw errors
|
|
|
|
####################################################################################################################################
|
|
|
|
sub error
|
|
|
|
{
|
|
|
|
my $self = shift;
|
|
|
|
my $iCode = shift;
|
|
|
|
my $strMessage = shift;
|
|
|
|
my $strDetail = shift;
|
|
|
|
|
|
|
|
logErrorResult($iCode, $strMessage, $strDetail);
|
|
|
|
}
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# result - retrieve a result from io or a filter
|
|
|
|
####################################################################################################################################
|
|
|
|
sub result
|
|
|
|
{
|
|
|
|
my $self = shift;
|
|
|
|
my $strModule = shift;
|
|
|
|
|
|
|
|
if (!defined($strModule))
|
|
|
|
{
|
|
|
|
return $self->{rhResult};
|
|
|
|
}
|
|
|
|
|
|
|
|
return $self->{rhResult}{$strModule};
|
|
|
|
}
|
|
|
|
|
|
|
|
####################################################################################################################################
|
2017-10-23 01:07:17 +02:00
|
|
|
# resultAll - get all results
|
|
|
|
####################################################################################################################################
|
|
|
|
sub resultAll
|
|
|
|
{
|
|
|
|
shift->{rhResult};
|
|
|
|
}
|
|
|
|
|
|
|
|
####################################################################################################################################
|
2017-06-09 23:51:41 +02:00
|
|
|
# resultSet - set a result from io or a filter
|
|
|
|
####################################################################################################################################
|
|
|
|
sub resultSet
|
|
|
|
{
|
|
|
|
my $self = shift;
|
|
|
|
my $strModule = shift;
|
|
|
|
my $xResult = shift;
|
|
|
|
|
|
|
|
$self->{rhResult}{$strModule} = $xResult;
|
|
|
|
}
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# Getters
|
|
|
|
####################################################################################################################################
|
|
|
|
sub className {blessed(shift)}
|
|
|
|
sub id {shift->{strId}}
|
|
|
|
|
|
|
|
1;
|