| Event-RPC documentation | Contained in the Event-RPC distribution. |
Event::RPC::Loop::Event - Event mainloop for Event::RPC
use Event::RPC::Server;
use Event::RPC::Loop::Event;
my $server = Event::RPC::Server->new (
...
loop => Event::RPC::Loop::Event->new(),
...
);
$server->start;
This modules implements a mainloop using the Event module for the Event::RPC::Server module. It implements the interface of Event::RPC::Loop. Please refer to the manpage of Event::RPC::Loop for details.
Jörn Reder <joern at zyn dot de>
Copyright (C) 2002-2006 by Joern Reder, All Rights Reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Event-RPC documentation | Contained in the Event-RPC distribution. |
# $Id: Event.pm,v 1.3 2006/04/23 08:37:41 joern Exp $ #----------------------------------------------------------------------- # Copyright (C) 2002-2006 Jörn Reder <joern AT zyn.de>. # All Rights Reserved. See file COPYRIGHT for details. # # This module is part of Event::RPC, which is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. #----------------------------------------------------------------------- package Event::RPC::Loop::Event; use base qw( Event::RPC::Loop ); use strict; use Event; sub add_io_watcher { my $self = shift; my %par = @_; my ($fh, $cb, $desc, $poll) = @par{'fh','cb','desc','poll'}; return Event->io ( fd => $fh, poll => $poll, cb => $cb, desc => $desc, reentrant => 0, ); } sub del_io_watcher { my $self = shift; my ($watcher) = @_; $watcher->cancel; 1; } sub add_timer { my $self = shift; my %par = @_; my ($interval, $after, $cb, $desc) = @par{'interval','after','cb','desc'}; die "interval and after can't be used together" if $interval && $after; return Event->timer ( interval => $interval, after => $after, cb => $cb, desc => $desc, ); } sub del_timer { my $self = shift; my ($timer) = @_; $timer->cancel; 1; } sub enter { my $self = shift; Event::loop(); 1; } sub leave { my $self = shift; Event::unloop_all("ok"); 1; } 1; __END__