Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET Apache Qpid Documentation
Public Member Functions | Protected Types | Protected Attributes | List of all members
qpid::messaging::Connection Class Reference

A connection represents a network connection to a remote endpoint. More...

#include <qpid/messaging/Connection.h>

Public Member Functions

 Connection (ConnectionImpl *impl)
 
 Connection (const Connection &)
 
 Connection ()
 
 Connection (const std::string &url, const qpid::types::Variant::Map &options=qpid::types::Variant::Map())
 Current implementation supports the following options: More...
 
 Connection (const std::string &url, const std::string &options)
 Creates a connection using an option string of the form {name:value,name2:value2...}, see above for options supported. More...
 
 ~Connection ()
 
Connectionoperator= (const Connection &)
 
void setOption (const std::string &name, const qpid::types::Variant &value)
 
void open ()
 
bool isOpen ()
 
bool isOpen () const
 
void reconnect (const std::string &url)
 Attempts to reconnect to the specified url, re-establish existing sessions, senders and receivers and resend any indoubt messages. More...
 
void reconnect ()
 Attempts to reconnect to the original url, including any specified reconnect_urls, re-establish existing sessions, senders and receivers and resend any indoubt messages. More...
 
std::string getUrl () const
 returns a url reprsenting the broker the client is currently connected to (or an empty string if it is not connected). More...
 
void close ()
 Closes a connection and all sessions associated with it. More...
 
Session createTransactionalSession (const std::string &name=std::string())
 
Session createSession (const std::string &name=std::string())
 
Session getSession (const std::string &name) const
 
std::string getAuthenticatedUsername ()
 
QPID_MESSAGING_INLINE_EXTERN bool isValid () const
 
QPID_MESSAGING_INLINE_EXTERN bool isNull () const
 
QPID_MESSAGING_INLINE_EXTERN operator bool () const
 Conversion to bool supports idiom if (handle) { handle->... More...
 
QPID_MESSAGING_INLINE_EXTERN bool operator! () const
 Operator ! supports idiom if (!handle) { do_if_handle_is_null(); }. More...
 
void swap (Handle< ConnectionImpl > &h)
 

Protected Types

typedef ConnectionImpl Impl
 

Protected Attributes

Implimpl
 

Detailed Description

A connection represents a network connection to a remote endpoint.

Definition at line 45 of file Connection.h.

Member Typedef Documentation

typedef ConnectionImpl qpid::messaging::Handle< ConnectionImpl >::Impl
protectedinherited

Definition at line 62 of file Handle.h.

Constructor & Destructor Documentation

qpid::messaging::Connection::Connection ( ConnectionImpl *  impl)
qpid::messaging::Connection::Connection ( const Connection )
qpid::messaging::Connection::Connection ( )
qpid::messaging::Connection::Connection ( const std::string &  url,
const qpid::types::Variant::Map options = qpid::types::Variant::Map() 
)

Current implementation supports the following options:

  • heartbeat: the heartbeat interval in seconds
  • tcp_nodelay: true/false, whether nagle should be disabled or not
  • transport: the underlying transport to use (e.g. tcp, ssl, rdma)
  • protocol: the version of AMQP to use (e.g. amqp0-10 or amqp1.0)

(Note: the transports and/or protocols recognised may depend on which plugins are loaded. AT present support for heartbeats is missing in AMQP 1.0)

  • username: the username to authenticate as
  • password: the password to use if required by the selected authentication mechanism
  • sasl_mechanisms: a space separated list of acceptable SASL mechanisms
  • sasl_min_ssf: the minimum acceptable security strength factor
  • sasl_max_ssf: the maximum acceptable security strength factor
  • sasl_service: the service name if needed by the SASL mechanism in use

Reconnect behaviour can be controlled through the following options:

  • reconnect: true/false (enables/disables reconnect entirely)
  • reconnect_timeout: seconds (give up and report failure after specified time)
  • reconnect_limit: n (give up and report failure after specified number of attempts)
  • reconnect_interval_min: seconds (initial delay between failed reconnection attempts)
  • reconnect_interval_max: seconds (maximum delay between failed reconnection attempts)
  • reconnect_interval: shorthand for setting the same reconnect_interval_min/max
  • reconnect_urls: list of alternate urls to try when connecting

The reconnect_interval is the time that the client waits for after a failed attempt to reconnect before retrying. It starts at the value of the min_retry_interval and is doubled every failure until the value of max_retry_interval is reached.

Values in seconds can be fractional, for example 0.001 is a millisecond delay.

If the SSL transport is used, the following options apply:

  • ssl_cert_name: the name of the certificate to use for a given
  • connection ssl_ignore_hostname_verification_failure: if set to true, will allow client to connect to server even if the hostname used (or ip address) doesn't match what is in the servers certificate. I.e. this disables authentication of the server to the client (and should be used only as a last resort)

When AMQP 1.0 is used, the following options apply:

  • container_id: sets the container id to use for the connection
  • nest_annotations: if true, any annotations in received messages will be presented as properties with keys x-amqp-delivery-annotations or x-amqp-delivery-annotations and values that are nested maps containing the annotations. If false, the annotations will simply be merged in with the properties.
  • set_to_on_send: If true, all sent messages will have the to field set to the node name of the sender
  • properties or client_properties: the properties to include in the open frame sent

The following options can be used to tune behaviour if needed (these are not yet supported over AMQP 1.0):

  • tcp_nodelay: disables Nagle's algorithm on the underlying tcp socket
  • max_channels: restricts the maximum number of channels supported
  • max_frame_size: restricts the maximum frame size supported
qpid::messaging::Connection::Connection ( const std::string &  url,
const std::string &  options 
)

Creates a connection using an option string of the form {name:value,name2:value2...}, see above for options supported.

Exceptions
InvalidOptionStringif the string does not match the correct syntax
qpid::messaging::Connection::~Connection ( )

Member Function Documentation

void qpid::messaging::Connection::close ( )

Closes a connection and all sessions associated with it.

An opened connection must be closed before the last handle is allowed to go out of scope.

Session qpid::messaging::Connection::createSession ( const std::string &  name = std::string())
Session qpid::messaging::Connection::createTransactionalSession ( const std::string &  name = std::string())
std::string qpid::messaging::Connection::getAuthenticatedUsername ( )
Session qpid::messaging::Connection::getSession ( const std::string &  name) const
std::string qpid::messaging::Connection::getUrl ( ) const

returns a url reprsenting the broker the client is currently connected to (or an empty string if it is not connected).

QPID_MESSAGING_INLINE_EXTERN bool qpid::messaging::Handle< ConnectionImpl >::isNull ( ) const
inlineinherited
Returns
true if handle is null. It is an error to call any function on a null handle.

Definition at line 46 of file Handle.h.

bool qpid::messaging::Connection::isOpen ( )
bool qpid::messaging::Connection::isOpen ( ) const
QPID_MESSAGING_INLINE_EXTERN bool qpid::messaging::Handle< ConnectionImpl >::isValid ( ) const
inlineinherited
Returns
true if handle is valid, i.e. not null.

Definition at line 43 of file Handle.h.

void qpid::messaging::Connection::open ( )
QPID_MESSAGING_INLINE_EXTERN qpid::messaging::Handle< ConnectionImpl >::operator bool ( ) const
inlineinherited

Conversion to bool supports idiom if (handle) { handle->...

}

Definition at line 49 of file Handle.h.

QPID_MESSAGING_INLINE_EXTERN bool qpid::messaging::Handle< ConnectionImpl >::operator! ( ) const
inlineinherited

Operator ! supports idiom if (!handle) { do_if_handle_is_null(); }.

Definition at line 52 of file Handle.h.

Connection& qpid::messaging::Connection::operator= ( const Connection )
void qpid::messaging::Connection::reconnect ( const std::string &  url)

Attempts to reconnect to the specified url, re-establish existing sessions, senders and receivers and resend any indoubt messages.

This can be used to directly control reconnect behaviour rather than using the reconnect option for automatically handling that.

void qpid::messaging::Connection::reconnect ( )

Attempts to reconnect to the original url, including any specified reconnect_urls, re-establish existing sessions, senders and receivers and resend any indoubt messages.

This can be used to directly control reconnect behaviour rather than using the reconnect option for automatically handling that.

void qpid::messaging::Connection::setOption ( const std::string &  name,
const qpid::types::Variant value 
)
void qpid::messaging::Handle< ConnectionImpl >::swap ( Handle< ConnectionImpl > &  h)
inlineinherited

Definition at line 54 of file Handle.h.

Member Data Documentation

Impl* qpid::messaging::Handle< ConnectionImpl >::impl
protectedinherited

Definition at line 65 of file Handle.h.


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

Qpid C++ API Reference
Generated on Tue Oct 28 2014 for Qpid C++ Client API by doxygen 1.8.5