package net.floodlightcontroller.perfmon;
import java.util.List;
import org.openflow.protocol.OFMessage;
import net.floodlightcontroller.core.FloodlightContext;
import net.floodlightcontroller.core.IOFMessageListener;
import net.floodlightcontroller.core.IOFSwitch;
import net.floodlightcontroller.core.module.IFloodlightService;
public interface IPktInProcessingTimeService extends IFloodlightService {
/**
* Creates time buckets for a set of modules to measure their performance
* @param listeners The message listeners to create time buckets for
*/
public void bootstrap(List<IOFMessageListener> listeners);
/**
* Stores a timestamp in ns. Used right before a service handles an
* OF message. Only stores if the service is enabled.
*/
public void recordStartTimeComp(IOFMessageListener listener);
public void recordEndTimeComp(IOFMessageListener listener);
public void recordStartTimePktIn();
public void recordEndTimePktIn(IOFSwitch sw, OFMessage m, FloodlightContext cntx);
public boolean isEnabled();
public void setEnabled(boolean enabled);
public CumulativeTimeBucket getCtb();
}