+ /**
+ * @deprecated Should always pass in route counter
+ * @param service
+ * @param registry
+ * @param chain
+ * @param peerIId
+ */
+ @Deprecated
+ AdjInTracker(final DOMDataTreeChangeService service, final RIBSupportContextRegistry registry, final DOMTransactionChain chain, final YangInstanceIdentifier peerIId) {
+ this(service, registry, chain, peerIId, new PerTableTypeRouteCounter("effective-rib-in"), new PerTableTypeRouteCounter("adj-rib-in"));
+ }
+
+ private void updateRoute(@Nonnull final PerTableTypeRouteCounter counter, @Nonnull final Map<TablesKey, Set<YangInstanceIdentifier>> routeMap,
+ @Nonnull final TablesKey tablesKey, @Nonnull final YangInstanceIdentifier routeId) {
+ routeMap.putIfAbsent(tablesKey, new HashSet<>());
+ routeMap.get(tablesKey).add(routeId);
+
+ updateRouteCounter(counter, routeMap,tablesKey);
+ }
+
+ private void deleteRoute(@Nonnull final PerTableTypeRouteCounter counter, @Nonnull final Map<TablesKey, Set<YangInstanceIdentifier>> routeMap,
+ @Nonnull final TablesKey tablesKey, @Nonnull final YangInstanceIdentifier routeId) {
+ if (routeMap.containsKey(tablesKey)) {
+ routeMap.get(tablesKey).remove(routeId);
+ }
+
+ updateRouteCounter(counter, routeMap,tablesKey);
+ }
+
+ private void deleteRoute(@Nonnull final PerTableTypeRouteCounter counter, @Nonnull final Map<TablesKey, Set<YangInstanceIdentifier>> routeMap,
+ @Nonnull final TablesKey tablesKey) {
+ routeMap.remove(tablesKey);
+
+ updateRouteCounter(counter, routeMap,tablesKey);
+ }
+
+ private void updateRouteCounter(@Nonnull final PerTableTypeRouteCounter counter, @Nonnull final Map<TablesKey, Set<YangInstanceIdentifier>> routeMap,
+ @Nonnull final TablesKey tablesKey) {
+ counter.getCounterOrSetDefault(tablesKey)
+ .setCount(routeMap.getOrDefault(tablesKey, new HashSet<>()).size());
+ }
+