import org.opendaylight.openflowplugin.api.openflow.device.TranslatorLibrary;
import org.opendaylight.openflowplugin.api.openflow.device.Xid;
import org.opendaylight.openflowplugin.api.openflow.device.exception.DeviceDataException;
+import org.opendaylight.openflowplugin.api.openflow.device.listener.OpenflowMessageListenerFacade;
+import org.opendaylight.openflowplugin.api.openflow.flow.registry.FlowRegistry;
import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher;
import org.opendaylight.openflowplugin.api.openflow.md.core.TranslatorKey;
+import org.opendaylight.openflowplugin.impl.flow.registry.DeviceFlowRegistry;
import org.opendaylight.openflowplugin.impl.translator.PacketReceivedTranslator;
import org.opendaylight.openflowplugin.openflow.md.core.session.SwitchConnectionCookieOFImpl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
private final Map<SwitchConnectionDistinguisher, ConnectionContext> auxiliaryConnectionContexts;
private final TransactionChainManager txChainManager;
private TranslatorLibrary translatorLibrary;
+ private OpenflowMessageListenerFacade openflowMessageListenerFacade;
+ private FlowRegistry flowRegistry;
@VisibleForTesting
DeviceContextImpl(@Nonnull final ConnectionContext primaryConnectionContext,
txChainManager = new TransactionChainManager(dataBroker, 500L);
auxiliaryConnectionContexts = new HashMap<>();
requests = new HashMap<>();
+ flowRegistry = new DeviceFlowRegistry();
}
/**
requests.put(xid.getValue(), requestFutureContext);
}
+ @Override
+ public void attachOpenflowMessageListener(final OpenflowMessageListenerFacade openflowMessageListenerFacade) {
+ this.openflowMessageListenerFacade = openflowMessageListenerFacade;
+ primaryConnectionContext.getConnectionAdapter().setMessageListener(openflowMessageListenerFacade);
+ }
+
+ @Override
+ public OpenflowMessageListenerFacade getOpenflowMessageListenerFacade() {
+ return this.openflowMessageListenerFacade;
+ }
+
+ @Override
+ public FlowRegistry getFlowRegistry() {
+ return flowRegistry;
+ }
+
@Override
public void processReply(final OfHeader ofHeader) {
final RequestContext requestContext = getRequests().get(ofHeader.getXid());
this.translatorLibrary = translatorLibrary;
}
+ @Override
+ public HashedWheelTimer getTimer() {
+ return this.hashedWheelTimer;
+ }
+
private class XidGenerator {