pod::Prima::Timer(3)

πŸ“¦
version 1.74000 Β· 5 versions
, in opensuse-leap 16.0

πŸ’… pod::Prima::Timer(3) β€” programmable periodical events πŸ’…

okay so welcome to the User Contributed Perl Documentation page for pod::Prima::Timer(3), bestie β€” we’re folding the manual name in right here at the top like a little name tag 🫢. This one is all about programmable periodical events.

🌸 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. iconic behavior, honestly πŸ•°οΈβœ¨

🧚 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 notifications 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.

bestie, this is the important caveat πŸ’€: no β€œexactly on time, every time” promises here, and sub-millisecond precision is a no-go for this 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. yes, it says printer object β€” that’s literally the line, bestie πŸ–¨οΈ
  • start β€” Sets the object in the active state. If it 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


mwah πŸ’‹ source/version/date check: perl v5.42.0, 2024-08-20, and this iconic page is pod::Prima::Timer(3). slay, bye πŸŽ€

πŸ“¦ where this page comes from