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

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.