package edu.mit.media.funf.probe; import java.util.Collection; import android.content.Intent; import android.os.Bundle; public interface ProbeScheduler { /** * Returns true if probe should be enabled, otherwise false. * @param probe * @param requests * @return */ public boolean shouldBeEnabled(Probe probe, Collection<Intent> requests); /** * Returns Bundle of parameters the probe should use to run now. If null is returned, probe should not run. * This method takes care of scheduling intents to stop the probe at the correct time. * @param probe * @param requests */ public Bundle startRunningNow(Probe probe, Collection<Intent> requests); /** * Schedules an alarm for the next time this probe should be run. * Returns a timestamp of the next run time, or null if not scheduled. * @param probe * @param requests * @return */ public Long scheduleNextRun(Probe probe, Collection<Intent> requests); }