BUG-6890: Statistics-polling configuration
[openflowplugin.git] / openflowplugin-api / src / main / java / org / opendaylight / openflowplugin / api / openflow / OpenFlowPluginProvider.java
index db725f20e5cb3ee699b8b870a25f47c39a407256..a2b0e0e14816e59efd72a97d0aa6fea545c030a8 100644 (file)
@@ -9,16 +9,18 @@
 package org.opendaylight.openflowplugin.api.openflow;
 
 import java.util.Collection;
+import java.util.Map;
 import org.opendaylight.controller.md.sal.binding.api.BindingService;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
 import org.opendaylight.controller.md.sal.binding.api.NotificationService;
 import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
 import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
 
 /**
- * Created by Martin Bobak <mbobak@cisco.com> on 27.3.2015.
+ * Plugin services provider
  */
 public interface OpenFlowPluginProvider extends AutoCloseable, BindingService {
 
@@ -54,10 +56,28 @@ public interface OpenFlowPluginProvider extends AutoCloseable, BindingService {
 
     boolean isSwitchFeaturesMandatory();
 
-    boolean isStatisticsPollingOff();
+    boolean isStatisticsPollingOn();
 
-    void setIsStatisticsPollingOff(final boolean isStatisticsPollingOff);
+    void setIsStatisticsPollingOn(final boolean isStatisticsPollingOn);
 
-    void setEntityOwnershipService(EntityOwnershipService entityOwnershipService);
+    /**
+     * Backward compatibility feature - exposing rpc for statistics polling (result is provided in form of async notification)
+     *
+     * @param isStatisticsRpcEnabled
+     */
+    void setIsStatisticsRpcEnabled(boolean isStatisticsRpcEnabled);
+
+    void setBarrierCountLimit(int barrierCountLimit);
+
+    void setBarrierInterval(long barrierTimeoutLimit);
+
+    void setEchoReplyTimeout(long echoReplyTimeout);
+
+    void setNotificationFlowRemovedOff(boolean isNotificationFlowRemovedOff);
+
+    void update(Map<String,Object> props);
+
+    void setClusteringSingletonServicesProvider(ClusterSingletonServiceProvider singletonServicesProvider);
 
-    }
+    void setSkipTableFeatures(boolean skipTableFeatures);
+}