*/
package org.opendaylight.openflowplugin.openflow.md.queue;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
import org.opendaylight.openflowplugin.openflow.md.core.ConnectionConductor;
-import org.opendaylight.openflowplugin.openflow.md.core.IMDMessageTranslator;
-import org.opendaylight.openflowplugin.openflow.md.core.TranslatorKey;
/**
* This processing mechanism based on queue. Processing consists of 2 steps: translate and publish.
* @param <IN> source type
* @param <OUT> result type
*/
-public interface QueueKeeper<IN, OUT> {
+public interface QueueKeeper<IN> extends AutoCloseable {
/** type of message enqueue */
public enum QueueType {
/** unordered processing - bypass fair processing */
UNORDERED}
- /**
- * @param translatorMapping translators for message processing
- */
- void setTranslatorMapping(Map<TranslatorKey, Collection<IMDMessageTranslator<IN, List<OUT>>>> translatorMapping);
-
- /**
- * enqueue message for processing using {@link QueueType#DEFAULT}
- * @param message
- * @param conductor source of message
- */
- void push(IN message, ConnectionConductor conductor);
-
/**
* enqueue message for processing
* @param message
void push(IN message, ConnectionConductor conductor, QueueType queueType);
/**
- * @param popListenersMapping listeners invoked when processing done
+ * @return oldest item from queue - if available and remove it from queue
*/
- void setPopListenersMapping(Map<Class<? extends OUT>, Collection<PopListener<OUT>>> popListenersMapping);
+ QueueItem<IN> poll();
}