Oracle Coherence for C++ API
Release 3.6.0.0

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

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  reset ()
  Reset the address provider making all previously returned addresses iterable.

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

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, 2010, Oracle and/or its affiliates. All rights reserved.