Create Refresher class (and IRefreshable interface)
This commit is contained in:
parent
e275fa01ed
commit
3e99cc293a
@ -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
23
client/src/refresher.vala
Normal 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;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user