Class MultipleAddresses


  • public final class MultipleAddresses
    extends java.lang.Object
    This class allows to store several quorum and electing addresses. See ZOOKEEPER-3188 for a discussion of this feature.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.time.Duration DEFAULT_TIMEOUT  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAddress​(java.net.InetSocketAddress address)  
      boolean equals​(java.lang.Object o)  
      java.util.Set<java.net.InetSocketAddress> getAllAddresses()
      Returns all addresses in an unmodifiable set.
      java.util.List<java.lang.String> getAllHostStrings()
      Returns distinct list of all host strings
      java.util.List<java.lang.Integer> getAllPorts()
      Returns all ports
      java.util.Set<java.net.InetSocketAddress> getAllReachableAddresses()
      Returns a set of all reachable addresses.
      java.util.Set<java.net.InetSocketAddress> getAllReachableAddressesOrAll()
      Returns a set of all reachable addresses.
      java.net.InetSocketAddress getOne()
      Returns an address from the set.
      java.net.InetSocketAddress getReachableAddress()
      Returns a reachable address.
      java.net.InetSocketAddress getReachableOrOne()
      Returns a reachable address or an arbitrary one, if none is reachable.
      java.util.Set<java.net.InetSocketAddress> getWildcardAddresses()
      Returns wildcard addresses for all ports
      int hashCode()  
      boolean isEmpty()  
      void recreateSocketAddresses()
      Performs a parallel DNS lookup for all addresses.
      int size()
      Returns the number of addresses in the set.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • DEFAULT_TIMEOUT

        public static final java.time.Duration DEFAULT_TIMEOUT
    • Constructor Detail

      • MultipleAddresses

        public MultipleAddresses()
      • MultipleAddresses

        public MultipleAddresses​(java.util.Collection<java.net.InetSocketAddress> addresses)
      • MultipleAddresses

        public MultipleAddresses​(java.net.InetSocketAddress address)
      • MultipleAddresses

        public MultipleAddresses​(java.util.Collection<java.net.InetSocketAddress> addresses,
                                 java.time.Duration timeout)
    • Method Detail

      • isEmpty

        public boolean isEmpty()
      • getAllAddresses

        public java.util.Set<java.net.InetSocketAddress> getAllAddresses()
        Returns all addresses in an unmodifiable set.
        Returns:
        set of all InetSocketAddress
      • getWildcardAddresses

        public java.util.Set<java.net.InetSocketAddress> getWildcardAddresses()
        Returns wildcard addresses for all ports
        Returns:
        set of InetSocketAddress with wildcards for all ports
      • getAllPorts

        public java.util.List<java.lang.Integer> getAllPorts()
        Returns all ports
        Returns:
        list of all ports
      • getAllHostStrings

        public java.util.List<java.lang.String> getAllHostStrings()
        Returns distinct list of all host strings
        Returns:
        list of all hosts
      • addAddress

        public void addAddress​(java.net.InetSocketAddress address)
      • getReachableAddress

        public java.net.InetSocketAddress getReachableAddress()
                                                       throws java.net.NoRouteToHostException
        Returns a reachable address. If none is reachable than throws exception. The function is nondeterministic in the sense that the result of calling this function twice with the same set of reachable addresses might lead to different results.
        Returns:
        address which is reachable.
        Throws:
        java.net.NoRouteToHostException - if none of the addresses are reachable
      • getAllReachableAddresses

        public java.util.Set<java.net.InetSocketAddress> getAllReachableAddresses()
        Returns a set of all reachable addresses. If none is reachable than returns empty set.
        Returns:
        all addresses which are reachable.
      • getAllReachableAddressesOrAll

        public java.util.Set<java.net.InetSocketAddress> getAllReachableAddressesOrAll()
        Returns a set of all reachable addresses. If none is reachable than returns all addresses.
        Returns:
        all reachable addresses, or all addresses if none is reachable.
      • getReachableOrOne

        public java.net.InetSocketAddress getReachableOrOne()
        Returns a reachable address or an arbitrary one, if none is reachable. It throws an exception if there are no addresses registered. The function is nondeterministic in the sense that the result of calling this function twice with the same set of reachable addresses might lead to different results.
        Returns:
        address which is reachable or fist one.
        Throws:
        java.util.NoSuchElementException - if there is no address registered
      • recreateSocketAddresses

        public void recreateSocketAddresses()
        Performs a parallel DNS lookup for all addresses. If the DNS lookup fails, then address remain unmodified.
      • getOne

        public java.net.InetSocketAddress getOne()
        Returns an address from the set.
        Returns:
        address from a set.
        Throws:
        java.util.NoSuchElementException - if there is no address registered
      • size

        public int size()
        Returns the number of addresses in the set.
        Returns:
        the number of addresses.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object