Create Refresher class (and IRefreshable interface)

This commit is contained in:
Camden Dixie O'Brien 2025-03-02 17:45:59 +00:00
parent e275fa01ed
commit 3e99cc293a
2 changed files with 24 additions and 0 deletions

View File

@ -19,6 +19,7 @@ lib = library(
'der.vala',
'main_window.vala',
'periodic.vala',
'refresher.vala',
'request.vala',
'response.vala',
'session_manager.vala',

23
client/src/refresher.vala Normal file
View File

@ -0,0 +1,23 @@
namespace StudySystemClient {
public interface IRefreshable {
public abstract async void refresh();
}
private class Refresher : Periodic {
private weak IRefreshable target;
public Refresher(IRefreshable target, uint period_ms) {
base(period_ms);
this.target = target;
}
protected override void task() {
if (target != null) {
Idle.add(() => {
target.refresh.begin();
return false;
});
}
}
}
}