NAME
Prima::Timer - programmable periodical events
SYNOPSIS
my $timer = Prima::Timer-> create(
timeout => 1000, # milliseconds
onTick => sub {
print "tick!\n";
},
);
$timer-> start;
DESCRIPTION
Prima::Timer arranges periodical notifications to be delivered in
certain time intervals. The notifications are triggered by the system,
and are seen as "Tick" events. There can be many active Timer objects
at one time, spawning events simultaneously.
USAGE
Prima::Timer is a descendant of Prima::Component. Objects of
Prima::Timer class are created in standard fashion:
my $t = Prima::Timer-> create(
timeout => 1000,
onTick => sub { print "tick\n"; },
);
$t-> start;
If no ‘owner‘ is given, $::application is assumed.
Timer objects are created in inactive state; no events are spawned. To
start spawning events, <start()> method must be explicitly called. Time
interval value is assigned using the <::timeout> property in
milliseconds.
When the system generates timer event, no callback is called
immediately, - an event is pushed into stack instead, to be delivered
during next event loop. Therefore, timeout value is not held
accurately, and events may take longer time to pass. More accurate
timing scheme, as well as timing with precision less than a
millisecond, is not supported by the toolkit.
API
Properties
timeout MILLISECONDS
Manages time interval between "Tick" events. In set-mode call, if
the timer is in active state ( see "get_active()", the new timeout
value is applied immediately.
Methods
get_active
Returns a boolean flag, whether object is in active state or not.
In the active state "Tick" events are spawned after "::timeout"
time intervals.
get_handle
Returns a system-dependent handle of object
start
Sets object in active state. If succeed, or if the object is
already in active state, returns 1. If the system was unable to
create a system timer instance, 0 is returned.
stop
Sets object in inactive state.
Events
Tick
A system generated event, spawned every "::timeout" milliseconds if
object is in active state.
AUTHOR
Dmitry Karasik, <dmitry@karasik.eu.org>.
SEE ALSO
Prima, Prima::Object