Oracle Coherence for C++ API
Release 3.7.1.0

E22845-01

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< Listm_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:
Copyright © 2000, 2011, Oracle and/or its affiliates. All rights reserved.