* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.openflowplugin.api.openflow.device;
-import com.google.common.util.concurrent.ListenableFuture;
-import io.netty.util.Timeout;
-import java.math.BigInteger;
import java.util.List;
-import javax.annotation.Nonnull;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
import org.opendaylight.openflowplugin.api.openflow.OFPContext;
import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext;
import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceReplyProcessor;
import org.opendaylight.openflowplugin.api.openflow.device.handlers.MultiMsgCollector;
-import org.opendaylight.openflowplugin.api.openflow.lifecycle.LifecycleService;
-import org.opendaylight.openflowplugin.api.openflow.registry.ItemLifeCycleRegistry;
+import org.opendaylight.openflowplugin.api.openflow.lifecycle.ContextChainStateListener;
import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.role.service.rev150727.SalRoleService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.role.service.rev150727.SetRoleOutput;
-import org.opendaylight.yangtools.yang.common.RpcResult;
/**
* The central entity of OFP is the Device Context, which encapsulate the logical state of a switch
DeviceReplyProcessor,
TxFacade,
DeviceRegistry,
- RequestContextStack {
-
- /**
- * Method close all auxiliary connections and primary connection.
- */
- void shutdownConnection();
-
- /**
- * Method add auxiliary connection contexts to this context representing single device connection.
- * @param connectionContext new connection context
- */
- void addAuxiliaryConnectionContext(ConnectionContext connectionContext);
-
- /**
- * Method removes auxiliary connection context from this context representing single device connection.
- * @param connectionContext connection which need to be removed
- */
- void removeAuxiliaryConnectionContext(ConnectionContext connectionContext);
+ RequestContextStack,
+ ContextChainStateListener {
/**
* Method provides state of device represented by this device context.
*/
DeviceState getDeviceState();
- /**
- * Method has to close TxManager ASAP we are notified about Closed Connection.
- * @return sync. future for Slave and MD-SAL completition for Master
- */
- ListenableFuture<Void> shuttingDownDataStoreTransactions();
-
/**
* Getter.
+ *
* @return current devices connection context
*/
ConnectionContext getPrimaryConnectionContext();
/**
* Getter.
- * @return current devices auxiliary connection contexts
- */
- ConnectionContext getAuxiliaryConnectionContexts(BigInteger cookie);
-
-
- /**
- * Getter.
+ *
* @return translator library
*/
TranslatorLibrary oook();
/**
- * store cancellable timeout handler of currently running barrier task.
+ * Sets notification publish service.
+ *
+ * @param notificationPublishService the notification publish service
*/
- void setCurrentBarrierTimeout(Timeout timeout);
+ void setNotificationPublishService(NotificationPublishService notificationPublishService);
/**
- * Getter.
- * @return cancellable timeout handle of currently running barrier task
+ * Gets message spy.
+ *
+ * @return the message spy
*/
- Timeout getBarrierTaskTimeout();
-
- void setNotificationPublishService(NotificationPublishService notificationPublishService);
-
MessageSpy getMessageSpy();
- <T extends OfHeader> MultiMsgCollector<T> getMultiMsgCollector(final RequestContext<List<T>> requestContext);
+ /**
+ * Gets multi msg collector.
+ *
+ * @param <T> the type parameter
+ * @param requestContext the request context
+ * @return the multi msg collector
+ */
+ <T extends OfHeader> MultiMsgCollector<T> getMultiMsgCollector(RequestContext<List<T>> requestContext);
/**
- * indicates that device context is fully published (e.g.: packetIn messages should be passed).
+ * Indicates that device context is fully published (e.g.: packetIn messages should be passed).
*/
void onPublished();
void updatePacketInRateLimit(long upperBound);
/**
- * Getter.
- * @return registry point for item life cycle sources of device
+ * Checks if device and controller supports single layer serialization.
+ * @return true if single layer serialization is supported
*/
- ItemLifeCycleRegistry getItemLifeCycleSourceRegistry();
-
- void setSwitchFeaturesMandatory(boolean switchFeaturesMandatory);
-
- void putLifecycleServiceIntoTxChainManager(LifecycleService lifecycleService);
-
- void replaceConnectionContext(ConnectionContext connectionContext);
-
- boolean isSkipTableFeatures();
-
- /**
- * Setter for sal role service.
- * @param salRoleService Role Service
- */
- void setSalRoleService(@Nonnull final SalRoleService salRoleService);
+ boolean canUseSingleLayerSerialization();
/**
- * Make device slave.
- * @return listenable future from sal role service
+ * Method for initial submit transaction after successful initial gathering.
*/
- ListenableFuture<RpcResult<SetRoleOutput>> makeDeviceSlave();
-
- boolean canUseSingleLayerSerialization();
-
- void sendNodeAddedNotification();
-
- void sendNodeRemovedNotification();
+ boolean initialSubmitTransaction();
}