Oracle Coherence for C++ API
Release 3.6.1.0
E18813-01

- Main Page
- Namespaces
- Classes
- Files

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# ConfigurableAddressProvider Class Reference

`#include <coherence/net/ConfigurableAddressProvider.hpp>`

Inherits Object, and AddressProvider.

List of all members.

## Detailed Description

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.

Author:
  gg 2008-08-18

  gm 2008-08-25

Since:
  Coherence 3.4

## 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() Returns: the next available address or NULL if the list of available addresses was exhausted
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. Parameters:
  | oheCause | (optional) an exception that carries the reason why the the caller rejected the previously returned address
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);
  Parameters:
  | out | the stream used to output the description
## 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...

## Constructor & Destructor Documentation

ConfigurableAddressProvider | ( | XmlElement::View | vXml,
|  | bool | fSafe = `true` |
| ) |  |  | `[protected]`

Construct an instance of ConfigurableAddressProvider based on the specified XML element.

Parameters:

  | vXml | the XML element that contains the configuration info
  | fSafe | true if the provider is skips unresolved addresses

## Member Function Documentation

virtual void configure | ( | XmlElement::View | vXml | ) | `[protected, virtual]`

Configure this ConfigurableAddressProvider based on the specified XML.

Parameters:

  | 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.

Parameters:

  | 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.

Parameters:

  | list | the original list retrieved from the configuration

Returns:
  the re-ordered list

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?>

Parameters:

  | vXml | the XML element that contains the configuration info

Returns:
  an instance of the corresponding AddressProvider implementation

The documentation for this class was generated from the following file:

- coherence/net/ConfigurableAddressProvider.hpp

Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.