File Coverage

blib/lib/Object/Remote/Connector/STDIO.pm
Criterion Covered Total %
statement 0 8 0.0
branch 0 12 0.0
condition n/a
subroutine 0 1 0.0
pod 0 1 0.0
total 0 22 0.0


line stmt bran cond sub pod time code
1             package Object::Remote::Connector::STDIO;
2              
3             use File::Spec;
4             use IO::Handle;
5             use Object::Remote::Connection;
6             use Object::Remote::ReadChannel;
7             use Moo;
8              
9             sub connect {
10 0 0   0 0   open my $stdin, '<&', \*STDIN or die "Duping stdin: $!";
11 0 0         open my $stdout, '>&', \*STDOUT or die "Duping stdout: $!";
12 0           $stdout->autoflush(1);
13             # if we don't re-open them then 0 and 1 get re-used - which is not
14             # only potentially bloody confusing but results in warnings like:
15             # "Filehandle STDOUT reopened as STDIN only for input"
16 0 0         close STDIN or die "Closing stdin: $!";
17 0 0         open STDIN, '<', File::Spec->devnull or die "Re-opening stdin: $!";
18 0 0         close STDOUT or die "Closing stdout: $!";
19 0 0         open STDOUT, '>', File::Spec->devnull or die "Re-opening stdout: $!";
20 0           return Object::Remote::Connection->new(
21             send_to_fh => $stdout,
22             read_channel => Object::Remote::ReadChannel->new(fh => $stdin)
23             );
24             }
25              
26             1;