java.lang.Object
org.opendaylight.openflowplugin.applications.frm.impl.AbstractListeningCommiter<Flow>
org.opendaylight.openflowplugin.applications.frm.impl.FlowForwarder
All Implemented Interfaces:
AutoCloseable, EventListener, org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener<Flow>, org.opendaylight.mdsal.binding.api.DataTreeChangeListener<Flow>, ForwardingRulesCommiter<Flow>, org.opendaylight.serviceutils.srm.RecoverableListener

public class FlowForwarder extends AbstractListeningCommiter<Flow>
FlowForwarder It implements DataTreeChangeListener for WildCardedPath to Flow and ForwardingRulesCommiter interface for methods: add, update and remove Flow processing for DataTreeModification.
  • Field Summary

    Fields inherited from class org.opendaylight.openflowplugin.applications.frm.impl.AbstractListeningCommiter

    dataBroker, registrationHelper
  • Constructor Summary

    Constructors
    Constructor
    Description
    FlowForwarder(ForwardingRulesManager manager, org.opendaylight.mdsal.binding.api.DataBroker db, ListenerRegistrationHelper registrationHelper)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Future<? extends org.opendaylight.yangtools.yang.common.RpcResult<?>>
    add(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow addDataObj, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
    Method adds the DataObject which is identified by InstanceIdentifier to device.
    void
     
    void
    createStaleMarkEntity(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow del, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
    Method creates stale-marked DataObject which is identified by InstanceIdentifier from device.
    void
     
    protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow>
    Method return wildCardPath for Listener registration and for identify the correct KeyInstanceIdentifier from data.
    void
    remove(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow removeDataObj, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
    Method removes DataObject which is identified by InstanceIdentifier from device.
    com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveFlowOutput>>
    removeWithResult(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow removeDataObj, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
     
    void
    update(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow original, Flow update, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
    Method updates the original DataObject to the update DataObject in device.

    Methods inherited from class org.opendaylight.openflowplugin.applications.frm.impl.AbstractListeningCommiter

    onDataTreeChanged, registerListener

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.opendaylight.mdsal.binding.api.DataTreeChangeListener

    onInitialData
  • Constructor Details

  • Method Details

    • deregisterListener

      public void deregisterListener()
    • close

      public void close()
    • remove

      public void remove(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow removeDataObj, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
      Description copied from interface: ForwardingRulesCommiter
      Method removes DataObject which is identified by InstanceIdentifier from device.
      Parameters:
      identifier - - the whole path to DataObject
      removeDataObj - - DataObject for removing
      nodeIdent - Node InstanceIdentifier
    • removeWithResult

      public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<RemoveFlowOutput>> removeWithResult(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow removeDataObj, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
    • update

      public void update(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow original, Flow update, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
      Description copied from interface: ForwardingRulesCommiter
      Method updates the original DataObject to the update DataObject in device. Both are identified by same InstanceIdentifier
      Parameters:
      identifier - - the whole path to DataObject
      original - - original DataObject (for update)
      update - - changed DataObject (contain updates)
      nodeIdent - Node InstanceIdentifier
    • add

      public Future<? extends org.opendaylight.yangtools.yang.common.RpcResult<?>> add(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow addDataObj, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
      Description copied from interface: ForwardingRulesCommiter
      Method adds the DataObject which is identified by InstanceIdentifier to device.
      Parameters:
      identifier - - the whole path to new DataObject
      addDataObj - - new DataObject
      nodeIdent - Node InstanceIdentifier
      Returns:
      A future associated with RPC task. null is set to the future if this method does not invoke RPC.
    • createStaleMarkEntity

      public void createStaleMarkEntity(org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> identifier, Flow del, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<FlowCapableNode> nodeIdent)
      Description copied from interface: ForwardingRulesCommiter
      Method creates stale-marked DataObject which is identified by InstanceIdentifier from device.
      Parameters:
      identifier - - the whole path to DataObject
      del - - DataObject removed. Stale-Mark object to be created from this object
      nodeIdent - Node InstanceIdentifier
    • getWildCardPath

      protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> getWildCardPath()
      Description copied from class: AbstractListeningCommiter
      Method return wildCardPath for Listener registration and for identify the correct KeyInstanceIdentifier from data.
      Specified by:
      getWildCardPath in class AbstractListeningCommiter<Flow>