Class 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.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      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 close()  
      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 deregisterListener()  
      protected org.opendaylight.yangtools.yang.binding.InstanceIdentifier<Flow> getWildCardPath()
      Method return wildCardPath for Listener registration and for identify the correct KeyInstanceIdentifier from data.
      void registerListener()  
      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 interface org.opendaylight.mdsal.binding.api.DataTreeChangeListener

        onInitialData
    • Constructor Detail

      • FlowForwarder

        public FlowForwarder​(ForwardingRulesManager manager,
                             org.opendaylight.mdsal.binding.api.DataBroker db)
    • Method Detail

      • registerListener

        public void registerListener()
      • 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