import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
import org.opendaylight.openflowplugin.api.openflow.device.handlers.OutstandingMessageExtractor;
+import org.opendaylight.openflowplugin.impl.services.RequestContextUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* openflowplugin-impl
*/
public class BarrierProcessor {
+ private static Logger LOG = LoggerFactory.getLogger(BarrierProcessor.class);
+
/**
* for all requestContexts from deviceContext cache which are older than barrier (lower barrierXid value) we do: <br>
* <ul>
* @param messageExtractor
*/
public static void processOutstandingRequests(final long barrierXid, final OutstandingMessageExtractor messageExtractor) {
+ LOG.trace("processing barrier response [{}]", barrierXid);
RequestContext nextRequestContext;
while ((nextRequestContext = messageExtractor.extractNextOutstandingMessage(barrierXid)) != null ) {
+ LOG.trace("flushing outstanding request [{}], closing", nextRequestContext.getXid().getValue());
nextRequestContext.getFuture().cancel(false);
+ RequestContextUtil.closeRequstContext(nextRequestContext);
}
}
}