NAME
Prima::Timer - programmable periodical events
SYNOPSIS
my $timer = Prima::Timer-> create(
timeout => 1000, # milliseconds
onTick => sub {
print "tick!\n";
},
);
$timer-> start;
DESCRIPTION
The Prima::Timer class arranges for the periodical notifications to be delivered in certain time intervals. The notifications are triggered by the system and are seen as the Tick
events. There can be many active Timer objects at one time, spawning events simultaneously.
USAGE
The Prima::Timer class is a descendant of the Prima::Component class. Objects of the Prima::Timer class are created in the 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 the inactive state; no events are spawned by default. To start spawning events, the start()
method must be explicitly called. The time interval value is assigned by calling the <::timeout> property.
When the system generates a timer event, no callback is called immediately, - an event is pushed into the internal event stack instead, to be delivered during the next event loop. Therefore it cannot be guaranteed that the onTick noitifications will be called precisely after a timeout. A more accurate timing scheme, as well as timing with a precision of less than a millisecond, is not supported by the toolkit.
API
Properties
- timeout MILLISECONDS
-
Manages time intervals between the
Tick
events. In the set-mode call, if the timer is in the active state already ( seeget_active()
, the new timeout value is applied immediately.
Methods
- get_active
-
Returns the boolean flag that reflects whether the object is in the active state or not. In the active state
Tick
events are spawned after::timeout
time intervals. - get_handle
-
Returns the system-dependent handle of the printer object
- start
-
Sets the object in the active state. If succeeds or if the object is already in the active state, returns 1. If the system is unable to create a system timer instance, the value of 0 is returned.
- stop
-
Sets object in the inactive state.
- toggle
-
Toggles the timer state
Events
- Tick
-
The system-generated event spawned every
::timeout
milliseconds if the object is in the active state.
AUTHOR
Dmitry Karasik, <dmitry@karasik.eu.org>.