package org.atomnuke.task.manager; import org.atomnuke.plugin.InstanceContext; import org.atomnuke.source.AtomSource; import org.atomnuke.task.atom.AtomTask; import org.atomnuke.util.TimeValue; /** * A tasker represents an object that may schedule an AtomSource for polling. * * @see AtomSource * @see InstanceContext * * @author zinic */ public interface AtomTasker { /** * Follows an AtomSource at a defined polling rate. The tasker requires that * an InstanceContext be give for each AtomSource to allow for the * abstraction of system internals like custom class loaders. * * @param source the instance context of the source to be polled. * @param pollingInterval the polling interval of this source. * @return a new polling task instance. */ AtomTask follow(InstanceContext<AtomSource> source, TimeValue pollingInterval); }