ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/lib/AnyEvent.pm
(Generate patch)

Comparing AnyEvent/lib/AnyEvent.pm (file contents):
Revision 1.17 by root, Fri Nov 24 14:40:13 2006 UTC vs.
Revision 1.18 by root, Sun Dec 10 21:33:33 2006 UTC

228our $verbose = $ENV{PERL_ANYEVENT_VERBOSE}*1; 228our $verbose = $ENV{PERL_ANYEVENT_VERBOSE}*1;
229 229
230our @REGISTRY; 230our @REGISTRY;
231 231
232my @models = ( 232my @models = (
233 [Coro::Event:: => AnyEvent::Impl::Coro::], 233 [Coro::Event:: => AnyEvent::Impl::Coro::],
234 [Event:: => AnyEvent::Impl::Event::], 234 [Event:: => AnyEvent::Impl::Event::],
235 [Glib:: => AnyEvent::Impl::Glib::], 235 [Glib:: => AnyEvent::Impl::Glib::],
236 [Tk:: => AnyEvent::Impl::Tk::], 236 [Tk:: => AnyEvent::Impl::Tk::],
237 [AnyEvent::Impl::Perl:: => AnyEvent::Impl::Perl::], 237 [AnyEvent::Impl::Perl:: => AnyEvent::Impl::Perl::],
238); 238);
239 239
240our %method = map +($_ => 1), qw(io timer condvar broadcast wait DESTROY); 240our %method = map +($_ => 1), qw(io timer condvar broadcast wait DESTROY);
241 241
242sub AUTOLOAD { 242sub AUTOLOAD {
243 $AUTOLOAD =~ s/.*://; 243 (my $func = $AUTOLOAD) =~ s/.*://;
244 244
245 $method{$AUTOLOAD} 245 $method{$func}
246 or croak "$AUTOLOAD: not a valid method for AnyEvent objects"; 246 or croak "$func: not a valid method for AnyEvent objects";
247 247
248 unless ($MODEL) { 248 unless ($MODEL) {
249 # check for already loaded models 249 # check for already loaded models
250 for (@REGISTRY, @models) { 250 for (@REGISTRY, @models) {
251 my ($package, $model) = @$_; 251 my ($package, $model) = @$_;
276 } 276 }
277 277
278 @ISA = $MODEL; 278 @ISA = $MODEL;
279 279
280 my $class = shift; 280 my $class = shift;
281 $class->$AUTOLOAD (@_); 281 $class->$func (@_);
282} 282}
283 283
284=head1 SUPPLYING YOUR OWN EVENT MODEL INTERFACE 284=head1 SUPPLYING YOUR OWN EVENT MODEL INTERFACE
285 285
286If you need to support another event library which isn't directly 286If you need to support another event library which isn't directly

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines