NAME
Mojo::Reactor::Glib - Glib::MainLoop backend for Mojo
VERSION
Version 0.002
I hope I need not to emphasise that this is in VERY EARLY STAGES OF DEVELOPMENT.
SYNOPSIS
Mojo::Reactor::Glib is a backend for Mojo::Reactor, build on top of the Glib main loop, allowing you to use various Mojo(licious) modules within a Glib or Gtk program.
BEGIN {
$ENV{MOJO_REACTOR} = 'Mojo::Reactor::Glib';
}
use Gtk2 -init;
use Mojo::UserAgent;
my $ua = Mojo::UserAgent->new();
Glib::Timeout->add(1000, sub {
$ua->get('http://example.com/' => sub {
my ($ua, $tx) = @_;
say $tx->res->body;
});
return Glib::SOURCE_CONTINUE;
});
Gtk2->main();
METHODS
Mojo::Reactor::Glib->new()
Just the constructor. You probably won't ever call it yourself.
$r->again($id)
Runs the timer known by $id
again
$r->io($handle, $cb)
Assigns a callback function $cb
to the IO handle $handle
. This is required before you can use watch.
Returns the reactor $r
so you can chain the calls.
$r->is_running()
Returns true if the loop is running, otherwise returns false
$r->one_tick()
Does a single Glib::MainLoop iteration. Returns true if events were dispatched during this iteration (whether or not they had been Mojo::Reactor::Glib events), false if nothing happened.
$r->recurring($after_sec, $cb)
Starts a recurring timer that beats every $after_sec
seconds (N.B. Glib allows for millisecond granularity), which will result in $cb
being fired.
Returns the Glib::Timeout ID that you can use to stop the timer.
See also timer
$r->remove($id)
Removes the timer identified by $id
, returning true if this was successful, and a false-ish value otherwise.
$r->reset()
Stops all timers and watches.
$r->start()
Starts the loop if it isn't already running.
$r->stop()
Stops the loop.
$r->timer($after_sec, $cb)
Starts a one-shot timer that beats after $after_sec
seconds (N.B. Glib allows for millisecond granularity), which will result in $cb
being fired.
Returns the Glib::Timeout ID that you can use to stop or again the timer.
See also recurring.
$r->watch($handle, $read, $write)
Adds an IO watch for $read
or $write
(booleans) on $handle
. If both $read
and $write
are false, it removes the watch.
Requires io to be run on $handle
first, as that associates the callback function with the handle.
See also io.
AUTHOR
Ralesk <ralesk at cpan.org>
BUGS
Please report issues at https://bitbucket.org/ralesk/mojo-reactor-glib/issues
KNOWN ISSUES
Breaks on Win32, Mojo::UserAgent can't do non-blocking calls at least.
Can't latch onto an existing Gtk event loop (no API for that), not sure if we actually should be able to or if we're good here in a sub-loop.
LICENCE AND COPYRIGHT
Copyright (C) 2014 Henrik Pauli
This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License (2.0). You may obtain a copy of the full licence at: