← Index
NYTProf Performance Profile   « block view • line view • sub view »
For 01.HTTP.t
  Run on Tue May 4 15:25:55 2010
Reported on Tue May 4 15:26:24 2010

File /usr/local/lib/perl5/5.10.1/darwin-2level/IO/Socket/UNIX.pm
Statements Executed 15
Statement Execution Time 366µs
Subroutines — ordered by exclusive time
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11115µs18µsIO::Socket::UNIX::::BEGIN@9IO::Socket::UNIX::BEGIN@9
1118µs39µsIO::Socket::UNIX::::BEGIN@12IO::Socket::UNIX::BEGIN@12
1118µs701µsIO::Socket::UNIX::::BEGIN@11IO::Socket::UNIX::BEGIN@11
0000s0sIO::Socket::UNIX::::configureIO::Socket::UNIX::configure
0000s0sIO::Socket::UNIX::::hostpathIO::Socket::UNIX::hostpath
0000s0sIO::Socket::UNIX::::newIO::Socket::UNIX::new
0000s0sIO::Socket::UNIX::::peerpathIO::Socket::UNIX::peerpath
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# IO::Socket::UNIX.pm
2#
3# Copyright (c) 1997-8 Graham Barr <gbarr@pobox.com>. All rights reserved.
4# This program is free software; you can redistribute it and/or
5# modify it under the same terms as Perl itself.
6
7package IO::Socket::UNIX;
8
9338µs221µs
# spent 18µs (15+3) within IO::Socket::UNIX::BEGIN@9 which was called # once (15µs+3µs) by IO::Socket::INET::BEGIN@11 at line 9
use strict;
# spent 18µs making 1 call to IO::Socket::UNIX::BEGIN@9 # spent 3µs making 1 call to strict::import
101400nsour(@ISA, $VERSION);
11326µs21.39ms
# spent 701µs (8+694) within IO::Socket::UNIX::BEGIN@11 which was called # once (8µs+694µs) by IO::Socket::INET::BEGIN@11 at line 11
use IO::Socket;
# spent 701µs making 1 call to IO::Socket::UNIX::BEGIN@11 # spent 694µs making 1 call to IO::Socket::import
123260µs270µs
# spent 39µs (8+31) within IO::Socket::UNIX::BEGIN@12 which was called # once (8µs+31µs) by IO::Socket::INET::BEGIN@11 at line 12
use Carp;
# spent 39µs making 1 call to IO::Socket::UNIX::BEGIN@12 # spent 31µs making 1 call to Exporter::import
13
1417µs@ISA = qw(IO::Socket);
151300ns$VERSION = "1.23";
16119µs$VERSION = eval $VERSION;
17
1814µs13µsIO::Socket::UNIX->register_domain( AF_UNIX );
# spent 3µs making 1 call to IO::Socket::register_domain
19
20sub new {
21 my $class = shift;
22 unshift(@_, "Peer") if @_ == 1;
23 return $class->SUPER::new(@_);
24}
25
26sub configure {
27 my($sock,$arg) = @_;
28 my($bport,$cport);
29
30 my $type = $arg->{Type} || SOCK_STREAM;
31
32 $sock->socket(AF_UNIX, $type, 0) or
33 return undef;
34
35 if(exists $arg->{Local}) {
36 my $addr = sockaddr_un($arg->{Local});
37 $sock->bind($addr) or
38 return undef;
39 }
40 if(exists $arg->{Listen} && $type != SOCK_DGRAM) {
41 $sock->listen($arg->{Listen} || 5) or
42 return undef;
43 }
44 elsif(exists $arg->{Peer}) {
45 my $addr = sockaddr_un($arg->{Peer});
46 $sock->connect($addr) or
47 return undef;
48 }
49
50 $sock;
51}
52
53sub hostpath {
54 @_ == 1 or croak 'usage: $sock->hostpath()';
55 my $n = $_[0]->sockname || return undef;
56 (sockaddr_un($n))[0];
57}
58
59sub peerpath {
60 @_ == 1 or croak 'usage: $sock->peerpath()';
61 my $n = $_[0]->peername || return undef;
62 (sockaddr_un($n))[0];
63}
64
65112µs1; # Keep require happy
66
67__END__
68
69=head1 NAME
70
71IO::Socket::UNIX - Object interface for AF_UNIX domain sockets
72
73=head1 SYNOPSIS
74
75 use IO::Socket::UNIX;
76
77=head1 DESCRIPTION
78
79C<IO::Socket::UNIX> provides an object interface to creating and using sockets
80in the AF_UNIX domain. It is built upon the L<IO::Socket> interface and
81inherits all the methods defined by L<IO::Socket>.
82
83=head1 CONSTRUCTOR
84
85=over 4
86
87=item new ( [ARGS] )
88
89Creates an C<IO::Socket::UNIX> object, which is a reference to a
90newly created symbol (see the C<Symbol> package). C<new>
91optionally takes arguments, these arguments are in key-value pairs.
92
93In addition to the key-value pairs accepted by L<IO::Socket>,
94C<IO::Socket::UNIX> provides.
95
96 Type Type of socket (eg SOCK_STREAM or SOCK_DGRAM)
97 Local Path to local fifo
98 Peer Path to peer fifo
99 Listen Create a listen socket
100
101If the constructor is only passed a single argument, it is assumed to
102be a C<Peer> specification.
103
104
105 NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
106
107As of VERSION 1.18 all IO::Socket objects have autoflush turned on
108by default. This was not the case with earlier releases.
109
110 NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
111
112=back
113
114=head1 METHODS
115
116=over 4
117
118=item hostpath()
119
120Returns the pathname to the fifo at the local end
121
122=item peerpath()
123
124Returns the pathanme to the fifo at the peer end
125
126=back
127
128=head1 SEE ALSO
129
130L<Socket>, L<IO::Socket>
131
132=head1 AUTHOR
133
134Graham Barr. Currently maintained by the Perl Porters. Please report all
135bugs to <perl5-porters@perl.org>.
136
137=head1 COPYRIGHT
138
139Copyright (c) 1996-8 Graham Barr <gbarr@pobox.com>. All rights reserved.
140This program is free software; you can redistribute it and/or
141modify it under the same terms as Perl itself.
142
143=cut