diff options
author | Aylur <[email protected]> | 2024-10-15 15:30:04 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2024-10-15 15:30:04 +0200 |
commit | cbe650afb31c24faea6da45b4aeeffc6e964969d (patch) | |
tree | d5c3788835ca7e50d68cd023026e7738f39f6f71 /core/src/time.vala | |
parent | bdb23e20f171da7c769cba9e393d7e406e563a78 (diff) | |
parent | bafd48d3df9b43a1d49ec015eff30619d595468b (diff) |
Merge pull request #46 from Aylur/small-refactor
Small refactor
Diffstat (limited to 'core/src/time.vala')
-rw-r--r-- | core/src/time.vala | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/core/src/time.vala b/core/src/time.vala deleted file mode 100644 index 4034c04..0000000 --- a/core/src/time.vala +++ /dev/null @@ -1,73 +0,0 @@ -namespace Astal { -public class Time : Object { - public signal void now (); - public signal void cancelled (); - private Cancellable cancellable; - private uint timeout_id; - private bool fulfilled = false; - - construct { - cancellable = new Cancellable(); - cancellable.cancelled.connect(() => { - if (!fulfilled) { - Source.remove(timeout_id); - cancelled(); - dispose(); - } - }); - } - - private void connect_closure(Closure? closure) { - if (closure == null) - return; - - now.connect(() => { - Value ret = Value(Type.POINTER); // void - closure.invoke(ref ret, {}); - }); - } - - public Time.interval_prio(uint interval, int prio = Priority.DEFAULT, Closure? fn) { - connect_closure(fn); - Idle.add_once(() => now()); - timeout_id = Timeout.add(interval, () => { - now(); - return Source.CONTINUE; - }, prio); - } - - public Time.timeout_prio(uint timeout, int prio = Priority.DEFAULT, Closure? fn) { - connect_closure(fn); - timeout_id = Timeout.add(timeout, () => { - now(); - fulfilled = true; - return Source.REMOVE; - }, prio); - } - - public Time.idle_prio(int prio = Priority.DEFAULT_IDLE, Closure? fn) { - connect_closure(fn); - timeout_id = Idle.add(() => { - now(); - fulfilled = true; - return Source.REMOVE; - }, prio); - } - - public static Time interval(uint interval, Closure? fn) { - return new Time.interval_prio(interval, Priority.DEFAULT, fn); - } - - public static Time timeout(uint timeout, Closure? fn) { - return new Time.timeout_prio(timeout, Priority.DEFAULT, fn); - } - - public static Time idle(Closure? fn) { - return new Time.idle_prio(Priority.DEFAULT_IDLE, fn); - } - - public void cancel() { - cancellable.cancel(); - } -} -} |