Merge "Eliminate the use of CompositeObjectRegistration"
[openflowplugin.git] / openflowplugin-api / src / main / java / org / opendaylight / openflowplugin / api / openflow / md / ModelDrivenSwitch.java
index 98774acd42f4cf18193bbf869a899f80ed7f2038..90270c6326ffa39317e73571a727e1fb255c3fba 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.openflowplugin.api.openflow.md;
 
+import com.google.common.base.Optional;
+import java.math.BigInteger;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
 import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionContext;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService;
@@ -24,7 +26,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.port.service.rev131107.SalP
 import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.OpendaylightQueueStatisticsService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.SalTableService;
-import org.opendaylight.yangtools.concepts.CompositeObjectRegistration;
 import org.opendaylight.yangtools.concepts.Identifiable;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
@@ -44,7 +45,7 @@ public interface ModelDrivenSwitch
      * @param rpcProviderRegistry
      * @return wrapped list of {service provider + path} registration couples
      */
-    CompositeObjectRegistration<ModelDrivenSwitch> register(RpcProviderRegistry rpcProviderRegistry);
+    ModelDrivenSwitchRegistration register(RpcProviderRegistry rpcProviderRegistry);
 
     /**
      * @return id of encapsulated node (served by this impl)
@@ -57,4 +58,29 @@ public interface ModelDrivenSwitch
      * @return session context object
      */
     SessionContext getSessionContext();
+
+    /**
+     * Returns whether this *instance* is entity owner or not
+     * @return true if it's entity owner, else false.
+     */
+    boolean isEntityOwner();
+
+    /**
+     * Set entity ownership satus of this switch in *this* instance
+     * @param isOwner
+     */
+    void setEntityOwnership(boolean isOwner);
+
+    /**
+     * Send table feature to the switch to get tables features for all the tables.
+     * @return Transaction id
+     */
+    Optional<BigInteger> sendEmptyTableFeatureRequest();
+
+    /**
+     * Method send port/desc multipart request to the switch to fetch the initial details.
+     */
+
+    public abstract void requestSwitchDetails();
+
 }