NAME

Prima::Timer - programmable periodical events

SYNOPSIS

my $timer = Prima::Timer-> new(
    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-> new(
   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 ( see get_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>.

SEE ALSO

Prima, Prima::Object