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.
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 manged 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)
 Construct an instance of ConfigurableAddressProvider based on the specified XML element.

Protected Attributes

MemberView< Collectionm_vListHolders
 A list of AddressHolder objects.
size32_t m_nLast
 Index of the last returned address.

Classes

class  AddressHolder
 A stateful holder for an InetSocketAddress object. More...

Constructor & Destructor Documentation

ConfigurableAddressProvider ( XmlElement::View  vXml  )  [protected]

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

Parameters:
vXml the XML element that contains the configuration info


Member Function Documentation

virtual InetSocketAddress::View getNextAddress (  )  [virtual]

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

Implements AddressProvider.

virtual void reject ( Exception::Holder  oheCause  )  [virtual]

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 caller rejected the previously returned address

Implements AddressProvider.

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: Copyright (c) 2000-2008 Oracle. All rights reserved.