Class ConfigurableAddressProvider
ConfigurableAddressProvider is an implementation of the IAddressProvider interface based on a static list of addresses configured in an XML element that contains one or more items in the following format:
<socket-address>
<address>...</address>
<port>...</port>
</socket-address>
Implements
Inherited Members
Namespace: Tangosol.Net
Assembly: Coherence.dll
Syntax
public class ConfigurableAddressProvider : IAddressProvider
Remarks
The order of items in the configured list will be randomized to provide basic load balancing. This implementation is not thread safe.
Constructors
ConfigurableAddressProvider(IXmlElement)
Construct an instance of ConfigurableAddressProvider based on the specified XML element.
Declaration
public ConfigurableAddressProvider(IXmlElement xmlConfig)
Parameters
| Type | Name | Description |
|---|---|---|
| IXmlElement | xmlConfig | The XML element that contains the configuration info. |
Remarks
Unresolvable addresses will be skipped.
ConfigurableAddressProvider(IXmlElement, bool)
Construct an instance of ConfigurableAddressProvider based on the specified XML element.
Declaration
public ConfigurableAddressProvider(IXmlElement xmlConfig, bool isSafe)
Parameters
| Type | Name | Description |
|---|---|---|
| IXmlElement | xmlConfig | The XML element that contains the configuration info. |
| bool | isSafe | True if the provider skips unresolved addresses. |
Fields
f_listHolders
A list of AddressHolder objects.
Declaration
protected IList<ConfigurableAddressProvider.AddressHolder> f_listHolders
Field Value
| Type | Description |
|---|---|
| IList<ConfigurableAddressProvider.AddressHolder> |
m_isSafe
Specifies if the provider is only to return resolved addresses.
Declaration
protected readonly bool m_isSafe
Field Value
| Type | Description |
|---|---|
| bool |
m_iterAddr
An address iterator for the previously resolved address.
Declaration
protected IEnumerator<IPEndPoint> m_iterAddr
Field Value
| Type | Description |
|---|---|
| IEnumerator<IPEndPoint> |
m_last
Index of the last returned address.
Declaration
protected int m_last
Field Value
| Type | Description |
|---|---|
| int |
Properties
NextAddress
Next available address to use.
Declaration
public virtual IPEndPoint NextAddress { get; }
Property Value
| Type | Description |
|---|---|
| IPEndPoint | The next available address or |
Remarks
If the caller can successfully use the returned address (e.g. a connection was established), it should call the IAddressProvider's Accept() method.
RemoteHostAddress
The host address of a remote server that client connected to.
Declaration
public string RemoteHostAddress { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
RequestTimeout
The maximum amount of time to wait.
Declaration
public long RequestTimeout { get; set; }
Property Value
| Type | Description |
|---|---|
| long |
Methods
Accept()
This method should be called by the client immediately after it determines that it can successfully use an address returned by the NextAddress.
Declaration
public virtual void Accept()
Configure(IXmlElement)
Configure this ConfigurableAddressProvider based on the specified XML.
Declaration
protected void Configure(IXmlElement xmlConfig)
Parameters
| Type | Name | Description |
|---|---|---|
| IXmlElement | xmlConfig | The XML element that contains the configuration info. |
Reject(Exception)
This method should be called by the client immediately after it determines that an attempt to use an address returned by the NextAddress has failed.
Declaration
public virtual void Reject(Exception eCause)
Parameters
| Type | Name | Description |
|---|---|---|
| Exception | eCause | (Optional) an exception that carries the reason why the caller rejected the previously returned address. |
Reset()
Make all addresses iterable, starting at the first address.
Declaration
protected void Reset()
Reset(int)
Make all addresses iterable, starting at the index after the specified one.
Declaration
protected void Reset(int iLast)
Parameters
| Type | Name | Description |
|---|---|---|
| int | iLast | The index after which to start. |
ResolveAddress(string, int)
Resolve a host and port.
Declaration
protected IEnumerator<IPEndPoint> ResolveAddress(string host, int port)
Parameters
| Type | Name | Description |
|---|---|---|
| string | host | The host. |
| int | port | The port |
Returns
| Type | Description |
|---|---|
| IEnumerator<IPEndPoint> | An IPEndPoint enumerator. |
SortHolders(IList<AddressHolder>)
Sort the holders in the order to be returned by the NextAddress property. This implementation randomizes the holder list for simple load balancing.
Declaration
protected IList<ConfigurableAddressProvider.AddressHolder> SortHolders(IList<ConfigurableAddressProvider.AddressHolder> list)
Parameters
| Type | Name | Description |
|---|---|---|
| IList<ConfigurableAddressProvider.AddressHolder> | list | The original list retrieved from the configuration. |
Returns
| Type | Description |
|---|---|
| IList<ConfigurableAddressProvider.AddressHolder> | The re-ordered list. |
ToString()
Return a string representation of this ConfigurableAddressProvider.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| string | A string representation of the list of configured addresses. |