public interface SocketAddressProvider
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 asychronously by extending RefreshableAddressProvider
.
Modifier and Type | Method and Description |
---|---|
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. |
boolean |
equals(Object o)
SocketAddressProvider instances are considered equivalent iff they consistently produce the same resulting set of addresses.
|
SocketAddress |
getNextAddress()
Obtain a next available address to use.
|
int |
hashCode()
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. |
SocketAddress getNextAddress()
accept()
method.void accept()
getNextAddress()
method.void reject(Throwable eCause)
getNextAddress()
method has failed.eCause
- (optional) an exception that carries the reason why the the caller rejected the previously returned addressboolean equals(Object o)
Note: the general contract of hashCode and equals() should be preserved; AddressProviders that are "equal" should produce the same hashCode.