package org.sef4j.core.helpers.tasks;
import org.sef4j.core.api.EventProvider;
import org.sef4j.core.helpers.senders.DefaultEventProvider;
public interface PollingEventProvider<T> extends EventProvider<T> {
public void poll();
// ------------------------------------------------------------------------
public static abstract class AbstractPollingEventProvider<T> extends DefaultEventProvider<T> implements PollingEventProvider<T> {
protected String displayName;
public AbstractPollingEventProvider(String displayName) {
this.displayName = displayName;
}
public PeriodicTask wrapAsPeriodicTask(PeriodicTask.Builder periodBuilder) {
return periodBuilder.withTask(() -> poll()).build();
}
}
}