package im.actor.runtime.js.threading;
import im.actor.runtime.threading.DispatchCancel;
import im.actor.runtime.threading.Dispatcher;
public class JsDispatcher implements Dispatcher {
public JsDispatcher() {
}
@Override
public DispatchCancel dispatch(Runnable message, long delay) {
final JsCanceller canceller = dispatchJs(message, (int) delay);
return new DispatchCancel() {
@Override
public void cancel() {
canceller.cancel();
}
};
}
public native final JsCanceller dispatchJs(Runnable runnable, int msec)/*-{
var _runnable = runnable
return setTimeout(function() {
_runnable.@java.lang.Runnable::run()();
}, msec);
}-*/;
}