summaryrefslogtreecommitdiffstats
path: root/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/V3poModule.java
diff options
context:
space:
mode:
authorTibor Král <tibor.kral@pantheon.tech>2019-05-02 10:05:19 +0200
committerTibor Král <tibor.kral@pantheon.tech>2019-05-07 15:46:44 +0200
commit68f67ac93942800eb09efa92f222cb8ac592bacc (patch)
treefccf5441f035e7591c282433b03067abf9be7b24 /v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/V3poModule.java
parent6221f64a5da88bb2d574dad7f61d9b09648869b0 (diff)
Enable Interface Statistics in V3PO
Change-Id: Iffde84f2cd85e343c3c3a5943910f7c195c8d11d Signed-off-by: Tibor Král <tibor.kral@pantheon.tech>
Diffstat (limited to 'v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/V3poModule.java')
-rw-r--r--v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/V3poModule.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/V3poModule.java b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/V3poModule.java
index b12893955..4bd4cca4a 100644
--- a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/V3poModule.java
+++ b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/V3poModule.java
@@ -16,7 +16,9 @@
package io.fd.hc2vpp.v3po;
+import com.google.common.annotations.VisibleForTesting;
import com.google.inject.AbstractModule;
+import com.google.inject.Provider;
import com.google.inject.Singleton;
import com.google.inject.multibindings.Multibinder;
import com.google.inject.name.Names;
@@ -29,16 +31,31 @@ import io.fd.hc2vpp.v3po.factory.SubinterfaceAugmentationWriterFactory;
import io.fd.hc2vpp.v3po.factory.SubinterfaceStateAugmentationReaderFactory;
import io.fd.hc2vpp.v3po.interfacesstate.cache.InterfaceCacheDumpManager;
import io.fd.hc2vpp.v3po.interfacesstate.cache.InterfaceCacheDumpManagerProvider;
+import io.fd.hc2vpp.v3po.interfacesstate.cache.InterfaceStatisticsManager;
+import io.fd.hc2vpp.v3po.interfacesstate.cache.InterfaceStatisticsManagerProvider;
+import io.fd.hc2vpp.v3po.interfacesstate.cache.JVppStatsProvider;
import io.fd.hc2vpp.v3po.notification.InterfaceChangeNotificationProducerProvider;
import io.fd.honeycomb.notification.ManagedNotificationProducer;
import io.fd.honeycomb.translate.read.ReaderFactory;
import io.fd.honeycomb.translate.write.WriterFactory;
+import io.fd.jvpp.stats.future.FutureJVppStatsFacade;
+import javax.annotation.Nonnull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class V3poModule extends AbstractModule {
private static final Logger LOG = LoggerFactory.getLogger(V3poModule.class);
+ private final Class<? extends Provider<FutureJVppStatsFacade>> jvppStatsProviderClass;
+
+ public V3poModule() {
+ this(JVppStatsProvider.class);
+ }
+
+ @VisibleForTesting
+ protected V3poModule(@Nonnull final Class<? extends Provider<FutureJVppStatsFacade>> jvppStatsProviderClass) {
+ this.jvppStatsProviderClass = jvppStatsProviderClass;
+ }
@Override
protected void configure() {
@@ -55,6 +72,11 @@ public class V3poModule extends AbstractModule {
bind(InterfaceCacheDumpManager.class).toProvider(InterfaceCacheDumpManagerProvider.class).in(Singleton.class);
+ // Statistics
+ bind(InterfaceStatisticsManager.class).toProvider(InterfaceStatisticsManagerProvider.class)
+ .in(Singleton.class);
+ bind(FutureJVppStatsFacade.class).toProvider(jvppStatsProviderClass).in(Singleton.class);
+
// Context utility for deleted interfaces
bind(DisabledInterfacesManager.class).toInstance(new DisabledInterfacesManager());