1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
package Net::CLI::Interact::Transport::Base::Unix;
{
$Net::CLI::Interact::Transport::Base::Unix::VERSION = '1.121640';
}
use Moose;
use Moose::Util::TypeConstraints;
extends 'Net::CLI::Interact::Transport::Base';
{
package # hide from pause
Net::CLI::Interact::Transport::Platform::Options;
use Moose;
extends 'Net::CLI::Interact::Transport::Base::Options';
has 'reap' => (
is => 'rw',
isa => 'Int',
default => 0,
);
}
sub put { (shift)->wrapper->put( join '', @_ ) }
has '_buffer' => (
is => 'rw',
isa => 'Str',
default => '',
required => 0,
);
sub buffer {
my $self = shift;
return $self->_buffer if scalar(@_) == 0;
return $self->_buffer(shift);
}
sub pump {
my $self = shift;
my $content = $self->wrapper->get;
$self->_buffer($self->_buffer . $content);
}
has '+timeout' => (
trigger => sub {
(shift)->wrapper->timeout(shift) if scalar @_ > 1;
},
);
has '+wrapper' => (
isa => 'Net::Telnet',
);
override '_build_wrapper' => sub {
my $self = shift;
$self->logger->log('transport', 'notice', 'creating Net::Telnet wrapper for', $self->app);
super();
$SIG{CHLD} = 'IGNORE'
if not $self->connect_options->reap;
with 'Net::CLI::Interact::Transport::Role::ConnectCore';
return $self->connect_core($self->app, $self->runtime_options);
};
1;
|