File Coverage

blib/lib/IO/Event/Event.pm
Criterion Covered Total %
statement 46 58 79.3
branch 5 12 41.6
condition n/a
subroutine 10 12 83.3
pod 0 9 0.0
total 61 91 67.0


line stmt bran cond sub pod time code
1              
2             #
3             # Use Event for the IO::Event event handler
4             #
5              
6             my $debug = $IO::Event::debug;
7             my $edebug = $IO::Event::edebug;
8             my $sdebug = $IO::Event::sdebug;
9              
10             package IO::Event::Event;
11              
12             require IO::Event;
13 18     18   346 use strict;
  18         276  
  18         2237  
14 18     18   451 use warnings;
  18         140  
  18         27595  
15              
16             our @ISA = qw(IO::Event::Common);
17              
18             sub import
19             {
20 0     0   0 require IO::Event;
21 0         0 IO::Event->import('no_emulate_Event');
22             }
23              
24             sub new
25             {
26 176     176 0 27278203 my ($pkg, @stuff) = @_;
27 176         6837 require Event;
28 176         2765 require Event::Watcher;
29 176         5254 $pkg->SUPER::new(@stuff);
30             }
31              
32             sub loop
33             {
34 4     4 0 36 require Event;
35 4         58 Event::loop(@_);
36             }
37              
38             sub unloop_all
39             {
40 3     3 0 38 require Event;
41 3         30 Event::unloop_all(@_);
42             }
43              
44             sub timer
45             {
46 3     3 0 18 require Event;
47 3         3 shift;
48 3         29 Event->timer(hard => 1, @_);
49             }
50              
51             sub idle
52             {
53 1     1 0 5 require Event;
54 1         2 shift;
55 1         4 Event->idle(@_);
56             }
57              
58             sub set_write_polling
59             {
60 0     0 0 0 my ($self, $new) = @_;
61 0         0 my $event = ${*$self}{ie_event};
  0         0  
62 0 0       0 if ($new) {
63 0         0 $event->poll($event->poll | Event::Watcher::W());
64             } else {
65 0         0 $event->poll($event->poll & ~Event::Watcher::W());
66             }
67             }
68              
69             sub set_read_polling
70             {
71 164     164 0 695 my ($self, $new) = @_;
72 164         318 my $event = ${*$self}{ie_event};
  164         608  
73 164 50       2463 if ($new) {
74 0         0 $event->poll($event->poll | Event::Watcher::R());
75             } else {
76 164 50       4730872 if ($event) {
77 164         3687 $event->poll($event->poll & ~Event::Watcher::R());
78             }
79             }
80             }
81              
82             sub ie_register
83             {
84 176     176 0 473 my ($self) = @_;
85 176         3617 my ($fh, $fileno) = $self->SUPER::ie_register();
86 176 50       392 my $R = ${*$self}{ie_readclosed}
  176         961  
87             ? 0
88             : Event::Watcher::R();
89 176         370 ${*$self}{ie_want_read_events} = ! ${*$self}{ie_readclosed};
  176         2631  
  176         605  
90 176         614 ${*$self}{ie_want_write_events} = '';
  176         1344  
91 176         78636 ${*$self}{ie_event} = Event->io(
  176         7382  
92             fd => $fileno,
93             poll => Event::Watcher::E()|Event::Watcher::T()|$R,
94             cb => [ $self, 'ie_dispatch' ],
95 176         1841 desc => ${*$self}{ie_desc},
96             edebug => $edebug,
97             );
98 176 50       1198 print STDERR "registered ${*$self}{ie_fileno}:${*$self}{ie_desc} $self $fh ${*$self}{ie_event}\n"
  0         0  
  0         0  
  0         0  
99             if $debug;
100             }
101              
102             sub ie_deregister
103             {
104 145     145 0 655 my ($self) = @_;
105 145         2365 $self->SUPER::ie_deregister();
106 145         1636 ${*$self}{ie_event}->cancel
  145         804  
107 145 50       215 if ${*$self}{ie_event};
108 145         358 delete ${*$self}{ie_event};
  145         9127  
109             }
110              
111             1;