ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/lib/AnyEvent/Strict.pm
Revision: 1.1
Committed: Tue Jul 8 23:53:37 2008 UTC (15 years, 11 months ago) by root
Branch: MAIN
Log Message:
*** empty log message ***

File Contents

# Content
1 package AnyEvent::Strict;
2
3 use Carp qw(croak);
4 use AnyEvent ();
5
6 AnyEvent::post_detect {
7 my $MODEL = shift @AnyEvent::ISA;
8 unshift @ISA, $MODEL;
9 unshift @AnyEvent::ISA, AnyEvent::Strict::
10 };
11
12 # supply checks for argument validity for many functions
13
14 sub io {
15 my $class = shift;
16 my %arg = @_;
17
18 ref $arg{cb}
19 or croak "AnyEvent->io called with illegal cb argument '$arg{cb}'";
20 delete $arg{cb};
21
22 fileno $arg{fh}
23 or croak "AnyEvent->io called with illegal fh argument '$arg{fh}'";
24 delete $arg{fh};
25
26 $arg{poll} =~ /^[rw]$/
27 or croak "AnyEvent->io called with illegal poll argument '$arg{poll}'";
28 delete $arg{poll};
29
30 croak "AnyEvent->io called with unsupported parameter(s) " . join ", ", keys %arg
31 if keys %arg;
32
33 $class->SUPER::io (@_)
34 }
35
36 sub timer {
37 my $class = shift;
38 my %arg = @_;
39
40 ref $arg{cb}
41 or croak "AnyEvent->timer called with illegal cb argument '$arg{cb}'";
42 delete $arg{cb};
43
44 exists $arg{after}
45 or croak "AnyEvent->timer called without mandatory 'after' parameter";
46 delete $arg{after};
47
48 !$arg{interval} or $arg{interval} > 0
49 or croak "AnyEvent->timer called with illegal interval argument '$arg{interval}'";
50 delete $arg{interval};
51
52 croak "AnyEvent->timer called with unsupported parameter(s) " . join ", ", keys %arg
53 if keys %arg;
54
55 $class->SUPER::timer (@_)
56 }
57
58 sub signal {
59 my $class = shift;
60 my %arg = @_;
61
62 ref $arg{cb}
63 or croak "AnyEvent->signal called with illegal cb argument '$arg{cb}'";
64 delete $arg{cb};
65
66 eval "require POSIX; defined &POSIX::SIG$arg{signal}"
67 or croak "AnyEvent->signal called with illegal signal name '$arg{signal}'";
68 delete $arg{signal};
69
70 croak "AnyEvent->signal called with unsupported parameter(s) " . join ", ", keys %arg
71 if keys %arg;
72
73 $class->SUPER::signal (@_)
74 }
75
76 sub child {
77 my $class = shift;
78 my %arg = @_;
79
80 ref $arg{cb}
81 or croak "AnyEvent->signal called with illegal cb argument '$arg{cb}'";
82 delete $arg{cb};
83
84 $arg{pid} =~ /^-?\d+$/
85 or croak "AnyEvent->signal called with illegal pid value '$arg{pid}'";
86 delete $arg{pid};
87
88 croak "AnyEvent->signal called with unsupported parameter(s) " . join ", ", keys %arg
89 if keys %arg;
90
91 $class->SUPER::child (@_)
92 }
93
94 sub condvar {
95 my $class = shift;
96 my %arg = @_;
97
98 !exists $arg{cb} or ref $arg{cb}
99 or croak "AnyEvent->condvar called with illegal cb argument '$arg{cb}'";
100 delete $arg{cb};
101
102 croak "AnyEvent->condvar called with unsupported parameter(s) " . join ", ", keys %arg
103 if keys %arg;
104
105 $class->SUPER::condvar (@_)
106 }
107
108 sub time {
109 my $class = shift;
110
111 @_
112 and croak "AnyEvent->time wrongly called with paramaters";
113
114 $class->SUPER::time (@_)
115 }
116
117 sub now {
118 my $class = shift;
119
120 @_
121 and croak "AnyEvent->now wrongly called with paramaters";
122
123 $class->SUPER::now (@_)
124 }
125
126 1