Class ServiceDiscovererUtils

java.lang.Object
io.servicetalk.dns.discovery.netty.ServiceDiscovererUtils

public final class ServiceDiscovererUtils extends Object
A set of utility functions for ServiceDiscoverer.
  • Method Details

    • calculateDifference

      @Nullable public static <T> List<ServiceDiscovererEvent<T>> calculateDifference(List<? extends T> currentActiveAddresses, List<? extends T> newActiveAddresses, Comparator<T> comparator, @Nullable ServiceDiscovererUtils.TwoIntsConsumer reporter, ServiceDiscovererEvent.Status missingRecordStatus)
      Given a sorted list of currently active addresses, and a new set of unsorted active address calculate the ServiceDiscovererEvents.

      newActiveAddresses will be sorted in this method.

      Type Parameters:
      T - The type of address.
      Parameters:
      currentActiveAddresses - The currently active addresses.
      newActiveAddresses - The new list of active addresses.This list must be modifiable as it will be sorted with List.sort(Comparator).
      comparator - A comparator for the addresses and to use for binary searches.
      reporter - A reporter for the numbers of available and missing events.
      missingRecordStatus - ServiceDiscovererEvent.Status to use for created ServiceDiscovererEvent when address present in current list but not in the new one.
      Returns:
      A list of ServiceDiscovererEvents which represents the changes between currentActiveAddresses and newActiveAddresses, or null if there are no changes.