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