File Coverage

lib/POSIX/1003/Events.pm
Criterion Covered Total %
statement 16 30 53.3
branch 0 4 0.0
condition 0 2 0.0
subroutine 5 14 35.7
pod 7 7 100.0
total 28 57 49.1


line stmt bran cond sub pod time code
1             # Copyrights 2011-2020 by [Mark Overmeer].
2             # For other contributors see ChangeLog.
3             # See the manual pages for details on the licensing terms.
4             # Pod stripped from pm file by OODoc 2.02.
5             # This code is part of distribution POSIX-1003. Meta-POD processed with
6             # OODoc into POD and HTML manual-pages. See README.md
7             # Copyright Mark Overmeer. Licensed under the same terms as Perl itself.
8              
9             package POSIX::1003::Events;
10 1     1   8 use vars '$VERSION';
  1         2  
  1         57  
11             $VERSION = '1.02';
12              
13 1     1   6 use base 'POSIX::1003::Module';
  1         1  
  1         96  
14              
15 1     1   6 use warnings;
  1         1  
  1         38  
16 1     1   7 use strict;
  1         2  
  1         152  
17              
18             my (@constants, @poll);
19              
20             my @functions = qw/
21             FD_CLR FD_ISSET FD_SET FD_ZERO select
22             poll events_names
23             /;
24              
25             our %EXPORT_TAGS =
26             ( constants => \@constants
27             , poll => \@poll
28             , functions => \@functions
29             );
30              
31             my $events;
32              
33             BEGIN {
34 1     1   11 $events = events_table;
35 1         6 push @constants, keys %$events;
36              
37 1         3 @poll = qw(poll events_names);
38 1         372 push @poll, grep /^POLL/, keys %$events;
39             }
40              
41              
42             sub select($$$;$)
43 0 0   0 1   { push @_, undef if @_==3;
44 0           goto &select;
45             }
46              
47              
48 0     0 1   sub FD_CLR($$) {vec($_[1],$_[0],1) = 0}
49 0     0 1   sub FD_ISSET($$) {vec($_[1],$_[0],1) ==1}
50 0     0 1   sub FD_SET($$) {vec($_[1],$_[0],1) = 1}
51 0     0 1   sub FD_ZERO($) {$_[0] = 0}
52              
53              
54             sub poll($;$)
55 0     0 1   { my ($data, $timeout) = @_;
56 0 0         defined $timeout or $timeout = -1;
57 0           _poll($data, $timeout);
58             }
59              
60             #----------------------
61              
62 0     0 1   sub events_names() { keys %$events }
63              
64             sub _create_constant($)
65 0     0     { my ($class, $name) = @_;
66 0   0       my $val = $events->{$name} // return sub() {undef};
67 0     0     sub() {$val};
  0            
68              
69             }
70             #----------------------
71              
72             1;