package com.linkedin.parseq;
import com.linkedin.parseq.DelayedExecutor;
import com.linkedin.parseq.internal.CancellableScheduledFuture;
import com.linkedin.parseq.Cancellable;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* Adapts a {@link ScheduledExecutorService} to the simpler
* {@link DelayedExecutor} interface.
*
* @author Chris Pettitt
*/
public class DelayedExecutorAdapter implements DelayedExecutor {
private final ScheduledExecutorService _scheduler;
public DelayedExecutorAdapter(final ScheduledExecutorService scheduler) {
_scheduler = scheduler;
}
@Override
public Cancellable schedule(final long delay, final TimeUnit unit, final Runnable command) {
return new CancellableScheduledFuture(_scheduler.schedule(command, delay, unit));
}
}