File Coverage

lib/Object/Wrapper/Fork.pm
Criterion Covered Total %
statement 25 25 100.0
branch 3 4 75.0
condition n/a
subroutine 7 7 100.0
pod 1 1 100.0
total 36 37 97.3


line stmt bran cond sub pod time code
1             ########################################################################
2             # housekeeping
3             ########################################################################
4              
5             package Object::Wrapper::Fork;
6              
7 7     7   28810 use 5.8.0;
  7         27  
  7         329  
8 7     7   34 use strict;
  7         15  
  7         245  
9 7     7   5329 use parent qw( Object::Wrapper );
  7         1852  
  7         39  
10              
11 7     7   308 use Carp qw( croak confess );
  7         10  
  7         454  
12 7     7   40 use Scalar::Util qw( blessed );
  7         15  
  7         1757  
13              
14             ########################################################################
15             # package variables
16             ########################################################################
17              
18             our $VERSION = 0.01;
19              
20             our $AUTOLOAD = '';
21              
22             ########################################################################
23             # utility subs
24             ########################################################################
25              
26             AUTOLOAD
27             {
28 2     2   1401 my $franger = shift;
29 2         50 my ( $obj, $pid ) = @$franger;
30              
31 2 100       72 $pid == $$
32 1         226 or confess "Bogus $AUTOLOAD: @{ $franger } crosses fork.";
33              
34 1         15 my $i = rindex $AUTOLOAD, '::';
35 1         5 my $name = substr $AUTOLOAD, 2 + $i;
36              
37 1 50       74 my $sub = $obj->can( $name )
38             or confess "Bogus $AUTOLOAD: '$obj' cannot '$name'";
39              
40 1         17 $obj->$sub( @_ )
41             }
42              
43             ########################################################################
44             # public interface
45             ########################################################################
46              
47             sub new
48             {
49 5     5 1 2031 splice @_, 2, 0, $$;
50              
51 5         39 goto &Object::Wrapper::new
52             }
53              
54             # keep require happy
55              
56             1
57              
58             __END__