From 68f67ac93942800eb09efa92f222cb8ac592bacc Mon Sep 17 00:00:00 2001 From: Tibor Král Date: Thu, 2 May 2019 10:05:19 +0200 Subject: Enable Interface Statistics in V3PO MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Iffde84f2cd85e343c3c3a5943910f7c195c8d11d Signed-off-by: Tibor Král --- .../main/java/io/fd/hc2vpp/v3po/V3poModule.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/V3poModule.java') 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> jvppStatsProviderClass; + + public V3poModule() { + this(JVppStatsProvider.class); + } + + @VisibleForTesting + protected V3poModule(@Nonnull final Class> 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()); -- cgit 1.2.3-korg