Interface SocketAddressProvider

All Known Subinterfaces:
AddressProvider, DescribableAddressProvider
All Known Implementing Classes:
CompositeAddressProvider, CompositeAddressProvider.SingleProvider, CompositeSocketAddressProvider, ConfigurableAddressProvider, ConfigurableLocalAddressProvider, NullImplementation.NullAddressProvider, RefreshableAddressProvider

public interface SocketAddressProvider
The SocketAddressProvider is an interface that serves as a means to provide addresses to a consumer. Simple implementations could be backed by a static list; more complex ones could use dynamic discovery protocols.

SocketAddressProvider implementations must exercise extreme caution since any delay with return or unhandled exception will cause a delay or complete shutdown of the corresponding service.

Implementations that involve more expensive operations (e.g. network fetch) may choose to do so asynchronously by extending RefreshableAddressProvider.

Since:
Coherence 12.1.2
Author:
gg,jh 2008.08.14, phf 2012.04.05
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    This method should be called by the client immediately after it determines that it can successfully use an address returned by the getNextAddress() method.
    boolean
    SocketAddressProvider instances are considered equivalent iff they consistently produce the same resulting set of addresses.
    Obtain a next available address to use.
    int
    Return the hash code for this SocketAddressProvider.
    void
    reject(Throwable eCause)
    This method should be called by the client immediately after it determines that an attempt to use an address returned by the getNextAddress() method has failed.
  • Method Details

    • getNextAddress

      SocketAddress getNextAddress()
      Obtain a next available address to use. If the caller can successfully use the returned address (e.g. a connection was established), it should call the SocketAddressProvider's accept() method.
      Returns:
      the next available address or null if the list of available addresses was exhausted
    • accept

      void accept()
      This method should be called by the client immediately after it determines that it can successfully use an address returned by the getNextAddress() method.
    • reject

      void reject(Throwable eCause)
      This method should be called by the client immediately after it determines that an attempt to use an address returned by the getNextAddress() method has failed.
      Parameters:
      eCause - (optional) an exception that carries the reason why the the caller rejected the previously returned address
    • equals

      boolean equals(Object o)
      SocketAddressProvider instances are considered equivalent iff they consistently produce the same resulting set of addresses.

      Note: the general contract of hashCode and equals() should be preserved; AddressProviders that are "equal" should produce the same hashCode.

      Overrides:
      equals in class Object
      Parameters:
      o - the Object to compare this SocketAddressProvider to for equality
      Returns:
      true iff this SocketAddressProvider is equal to the specified object
    • hashCode

      int hashCode()
      Return the hash code for this SocketAddressProvider.
      Overrides:
      hashCode in class Object
      Returns:
      the hash code for this SocketAddressProvider