X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=openflowplugin-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fapi%2Fopenflow%2Fdevice%2FDeviceContext.java;h=d7109999976004e618d0e63464caa9088d9a59d9;hb=a99143f3d14932f56486d020644ba1f7a0eea41c;hp=0dce8206aab98d00b8de6166b481a1aebc22e105;hpb=5c8e6dfc83027fa6af0de5b8c58661fe620c9973;p=openflowplugin.git diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceContext.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceContext.java index 0dce8206aa..d710999997 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceContext.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceContext.java @@ -8,19 +8,30 @@ package org.opendaylight.openflowplugin.api.openflow.device; +import io.netty.util.Timeout; import java.math.BigInteger; - +import java.util.List; +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; +import org.opendaylight.controller.md.sal.binding.api.NotificationService; import org.opendaylight.controller.md.sal.binding.api.ReadTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.openflowplugin.api.openflow.OpenFlowPluginTimer; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; +import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceContextClosedHandler; +import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceDisconnectedHandler; +import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceReplyProcessor; import org.opendaylight.openflowplugin.api.openflow.device.handlers.MessageHandler; -import org.opendaylight.openflowplugin.api.openflow.device.handlers.OutstandingMessageExtractor; -import org.opendaylight.openflowplugin.api.openflow.translator.TranslatorLibrarian; -import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TableFeatures; +import org.opendaylight.openflowplugin.api.openflow.device.handlers.MultiMsgCollector; +import org.opendaylight.openflowplugin.api.openflow.registry.flow.DeviceFlowRegistry; +import org.opendaylight.openflowplugin.api.openflow.registry.group.DeviceGroupRegistry; +import org.opendaylight.openflowplugin.api.openflow.registry.meter.DeviceMeterRegistry; +import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReply; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** + *
* The central entity of OFP is the Device Context, which encapsulate the logical state of a switch * as seen by the controller. Each OpenFlow session is tracked by a Connection Context. * These attach to a particular Device Context in such a way, that there is at most one primary @@ -33,10 +44,14 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; * which is enforced by keeping a cap on the number of outstanding requests a particular Request * Context can have at any point in time. Should this quota be exceeded, any further attempt to make * a request to the switch will fail immediately, with proper error indication. - *
+ * * Created by Martin Bobak <mbobak@cisco.com> on 25.2.2015. */ -public interface DeviceContext extends MessageHandler, TranslatorLibrarian, OutstandingMessageExtractor { +public interface DeviceContext extends AutoCloseable, + OpenFlowPluginTimer, + MessageHandler, + DeviceReplyProcessor, + DeviceDisconnectedHandler { /** @@ -62,25 +77,29 @@ public interface DeviceContext extends MessageHandler, TranslatorLibrarian, Outs DeviceState getDeviceState(); /** - * Method exposes possibility for write a child of {@link DataObject} to transaction for DataStore. + * Method creates put operation using provided data in underlying transaction chain. */