package org.opendaylight.openflowplugin.api.openflow.statistics;
-import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
-import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.ListenableFuture;
+import io.netty.util.Timeout;
+import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
+import org.opendaylight.openflowplugin.api.openflow.rpc.listener.ItemLifecycleListener;
/**
- * Created by Martin Bobak <mbobak@cisco.com> on 27.2.2015.
+ * Created by Martin Bobak <mbobak@cisco.com> on 27.2.2015.
*/
-public interface StatisticsContext {
+public interface StatisticsContext extends RequestContextStack, AutoCloseable {
- void setDeviceContext(DeviceContext deviceContext);
+ ListenableFuture<Boolean> gatherDynamicData();
- void setRequestContext(RequestContext requestContext);
+ /**
+ * @param pollTimeout handle to nearest scheduled statistics poll
+ */
+ void setPollTimeout(Timeout pollTimeout);
+
+ /**
+ * @return handle to currently scheduled statistics polling
+ */
+ Optional<Timeout> getPollTimeout();
+
+ /**
+ * @return dedicated item life cycle change listener (per device)
+ */
+ ItemLifecycleListener getItemLifeCycleListener();
}