Create Refresher class (and IRefreshable interface)
This commit is contained in:
parent
e275fa01ed
commit
3e99cc293a
@ -19,6 +19,7 @@ lib = library(
|
|||||||
'der.vala',
|
'der.vala',
|
||||||
'main_window.vala',
|
'main_window.vala',
|
||||||
'periodic.vala',
|
'periodic.vala',
|
||||||
|
'refresher.vala',
|
||||||
'request.vala',
|
'request.vala',
|
||||||
'response.vala',
|
'response.vala',
|
||||||
'session_manager.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