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

# User Rev Content
1 root 1.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