1package Child::Link;
2use strict;
3use warnings;
4
5use Child::Util;
6use Carp qw/croak/;
7
8add_accessors qw/pid/;
9
10sub ipc { undef }
11
12sub _no_ipc { croak "Child was created without IPC support" }
13
14sub new {
15    my $class = shift;
16    my ( $pid ) = @_;
17    return bless( { _pid => $pid }, $class );
18}
19
20{
21    no strict 'refs';
22    *{__PACKAGE__ . '::' . $_} = \&_no_ipc
23        for qw/autoflush flush read say write/;
24}
25
261;
27
28=head1 NAME
29
30Child::Link - Base class for objects that link child and parent processes.
31
32=head1 HISTORY
33
34Most of this was part of L<Parrallel::Runner> intended for use in the L<Fennec>
35project. Fennec is being broken into multiple parts, this is one such part.
36
37=head1 FENNEC PROJECT
38
39This module is part of the Fennec project. See L<Fennec> for more details.
40Fennec is a project to develop an extendable and powerful testing framework.
41Together the tools that make up the Fennec framework provide a potent testing
42environment.
43
44The tools provided by Fennec are also useful on their own. Sometimes a tool
45created for Fennec is useful outside the greator framework. Such tools are
46turned into their own projects. This is one such project.
47
48=over 2
49
50=item L<Fennec> - The core framework
51
52The primary Fennec project that ties them all together.
53
54=back
55
56=head1 AUTHORS
57
58Chad Granum L<exodist7@gmail.com>
59
60=head1 COPYRIGHT
61
62Copyright (C) 2010 Chad Granum
63
64Child is free software; Standard perl licence.
65
66Child is distributed in the hope that it will be useful, but WITHOUT
67ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
68FOR A PARTICULAR PURPOSE.  See the license for more details.
69