Class OutboundQueueProviderImpl

java.lang.Object
org.opendaylight.openflowplugin.impl.connection.OutboundQueueProviderImpl
All Implemented Interfaces:
OutboundQueue, OutboundQueueHandler, OutboundQueueProvider

public class OutboundQueueProviderImpl extends Object implements OutboundQueueProvider
  • Constructor Details

    • OutboundQueueProviderImpl

      public OutboundQueueProviderImpl(org.opendaylight.yangtools.yang.common.Uint8 ofVersion)
  • Method Details

    • createBarrierRequest

      public BarrierInput createBarrierRequest(org.opendaylight.yangtools.yang.common.Uint32 xid)
      Description copied from interface: OutboundQueueHandler
      Create a new barrier message. This callback is invoked when the queue is being flushed to the switch. The barrier ensures that any outstanding requests are detected as either completed or failed.
      Specified by:
      createBarrierRequest in interface OutboundQueueHandler
      Parameters:
      xid - XID for the barrier message
      Returns:
      New barrier message.
    • onConnectionQueueChanged

      public void onConnectionQueueChanged(OutboundQueue queue)
      Description copied from interface: OutboundQueueHandler
      Invoked whenever the underlying queue is refreshed. Implementations should ensure they are talking to the latest queue
      Specified by:
      onConnectionQueueChanged in interface OutboundQueueHandler
      Parameters:
      queue - New queue instance, null indicates a shutdown, e.g. the queue is no longer available.
    • reserveEntry

      public org.opendaylight.yangtools.yang.common.Uint32 reserveEntry()
      Description copied from interface: OutboundQueue
      Reserve an entry in the outbound queue.
      Specified by:
      reserveEntry in interface OutboundQueue
      Returns:
      XID for the new message, or null if the queue is full
    • commitEntry

      public void commitEntry(org.opendaylight.yangtools.yang.common.Uint32 xid, OfHeader message, com.google.common.util.concurrent.FutureCallback<OfHeader> callback)
      Description copied from interface: OutboundQueue
      Commit the specified offset using a message. Specified callback will be invoked once we know how it has resolved, either with a normal response, implied completion via a barrier, or failure (such as connection drop). For multipart responses, FutureCallback.onSuccess(Object) will be invoked multiple times as the corresponding responses arrive. If the request is completed with a response, the object reported will be non-null. If the request's completion is implied by a barrier, the object reported will be null.

      If this request fails on the remote device, FutureCallback.onFailure(Throwable) will be called with an instance of DeviceRequestFailedException.

      If the request fails due to local reasons, FutureCallback.onFailure(Throwable) will be called with an instance of OutboundQueueException. In particular, if this request failed because the device disconnected, OutboundQueueException.DEVICE_DISCONNECTED will be reported.

      Specified by:
      commitEntry in interface OutboundQueue
      Parameters:
      xid - Previously-reserved XID
      message - Message which should be sent out, or null if the reservation should be cancelled.
      callback - Callback to be invoked, or null if no callback should be invoked.
    • commitEntry

      public void commitEntry(org.opendaylight.yangtools.yang.common.Uint32 xid, OfHeader message, com.google.common.util.concurrent.FutureCallback<OfHeader> callback, Function<OfHeader,Boolean> isComplete)
      Description copied from interface: OutboundQueue
      Commit the specified offset using a message. Specified callback will be invoked once we know how it has resolved, either with a normal response, implied completion via a barrier, or failure (such as connection drop). For multipart responses, FutureCallback.onSuccess(Object) will be invoked multiple times as the corresponding responses arrive. If the request is completed with a response, the object reported will be non-null. If the request's completion is implied by a barrier, the object reported will be null.

      If this request fails on the remote device, FutureCallback.onFailure(Throwable) will be called with an instance of DeviceRequestFailedException.

      If the request fails due to local reasons, FutureCallback.onFailure(Throwable) will be called with an instance of OutboundQueueException. In particular, if this request failed because the device disconnected, OutboundQueueException.DEVICE_DISCONNECTED will be reported.

      Specified by:
      commitEntry in interface OutboundQueue
      Parameters:
      xid - Previously-reserved XID
      message - Message which should be sent out, or null if the reservation should be cancelled.
      callback - Callback to be invoked, or null if no callback should be invoked.
      isComplete - Function to determine if OfHeader is processing is complete