Oracle Coherence for C++ API
Release 3.7.1.0
E22845-01
#include <coherence/net/ConfigurableAddressProvider.hpp>
Inherits Object, and AddressProvider.
ConfigurableAddressProvider is an implementation of the AddressProvider 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>
The order of items in the configured list will be randomized to provide basic load balancing.
This implementation is not thread safe.
Public Types |
||||
| typedef spec::Handle | Handle | |||
| ConfigurableAddressProvider Handle definition. | ||||
| typedef spec::View | View | |||
| ConfigurableAddressProvider View definition. | ||||
| typedef spec::Holder | Holder | |||
| ConfigurableAddressProvider Holder definition. | ||||
Public Member Functions |
||||
| virtual InetSocketAddress::View |
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 AddressProvider's accept()
|
||||
| virtual 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. | ||||
| virtual void | reject (Exception::Holder oheCause) | |||
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.
|
||||
| virtual void | toStream (std::ostream &out) const | |||
| Output a human-readable description of this Object to the given stream.
coherence::lang::operator<<(std::ostream, Object::View) is defined and will call into the toStream method, to output Objects. If a managed String object is desired, the COH_TO_STRING macro can be used to build up a String from streamable contents. Object::View vKey = ... Object::View vValue = ... std::cout << vKey << " = " << vValue << std::endl; String::Handle hs = COH_TO_STRING(vKey << " = " << vValue);
|
||||
Static Public Member Functions |
||||
| static AddressProvider::Handle |
createAddressProvider (XmlElement::View vXml) | |||
| Instantiate an AddressProvider configured using an XML that conforms to the format of the "remote-addresses" element found in the cache-config.dtd in the Coherence library:. | ||||
Static Public Attributes |
||||
| static const size32_t | npos | |||
| The largest possible value of type size32_t. | ||||
Protected Member Functions |
||||
| ConfigurableAddressProvider () | ||||
| Create a new ConfigurableAddressProvider instance. | ||||
| ConfigurableAddressProvider (XmlElement::View vXml, bool fSafe=true) | ||||
| Construct an instance of ConfigurableAddressProvider based on the specified XML element. | ||||
| virtual void | configure (XmlElement::View vXml) | |||
| Configure this ConfigurableAddressProvider based on the specified XML. | ||||
| virtual void | reset () | |||
| Make all addresses iterable, starting at the first address. | ||||
| virtual void | reset (size32_t iLast) | |||
| Make all addresses iterable, starting at the index after the specified one. | ||||
| virtual List::Handle | sortHolders (List::Handle hList) | |||
| Sort the holders in the order to be returned by the getNextAddress method. | ||||
Protected Attributes |
||||
| MemberView< List > | m_vListHolders | |||
| A list of AddressHolder objects. | ||||
| size32_t | m_iLast | |||
| Index of the last returned address. | ||||
| bool | m_fSafe | |||
| Specifies if the provider is only to return resolved addresses. | ||||
Classes |
||||
| class | AddressHolder | |||
| A stateful holder for an InetSocketAddress object. More... | ||||
| ConfigurableAddressProvider | ( | XmlElement::View | vXml, | |
| bool | fSafe = true |
|||
| ) | [protected] |
Construct an instance of ConfigurableAddressProvider based on the specified XML element.
| vXml | the XML element that contains the configuration info | |
| fSafe | true if the provider is skips unresolved addresses |
| virtual void configure | ( | XmlElement::View | vXml | ) | [protected, virtual] |
Configure this ConfigurableAddressProvider based on the specified XML.
| xmlConfig | the XML element that contains the configuration info |
| virtual void reset | ( | size32_t | iLast | ) | [protected, virtual] |
Make all addresses iterable, starting at the index after the specified one.
| iLast | the index of the last address returned |
| virtual List::Handle sortHolders | ( | List::Handle | hList | ) | [protected, virtual] |
Sort the holders in the order to be returned by the getNextAddress method.
This implementation randomizes the holder lists for simple load balancing.
| list | the original list retrieved from the configuration |
| static AddressProvider::Handle createAddressProvider | ( | XmlElement::View | vXml | ) | [static] |
Instantiate an AddressProvider configured using an XML that conforms to the format of the "remote-addresses" element found in the cache-config.dtd in the Coherence library:.
<!ELEMENT address-provider
(class-name | (class-factory-name, method-name), init-params?>
| vXml | the XML element that contains the configuration info |
The documentation for this class was generated from the following file: