qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cliff Jansen" <cliffjan...@gmail.com>
Subject Review Request 39694: C++ binding connection options and reconnect
Date Tue, 27 Oct 2015 18:21:14 GMT

This is an automatically generated e-mail. To reply, visit:

Review request for qpid, Alan Conway, Andrew Stitcher, and Justin Ross.

Bugs: PROTON-865

Repository: qpid-proton-git


This provides connection options (broadly similar to link options).

As suggested by Alan, the collection connection_options is a subclass of the base connection_option
so that they can be grouped and nested.

They can also be copied and persisted via respective clone methods.  Reconnect and transport
options need to live as long as the connection.  The handler option is special and needs to
be extracted before other options to be available when the connection is created.

Incoming (listener) connection options are perhaps missing a feature.  You can set global
server connection options on a container, and you can set separate ssl_domain creds per listener,
but you cannot set other connection options (idle_timeout/max_frame_size etc) per listener.
 This is reflected in Proton-C's acceptor and the readable events that it intercepts.  There
is no way to query the C API to find out which listener is the parent of an incoming connection
or transfer other listener-specific context to the connection.

As suggested in the link options review, I attempted to provide an initializer_list<foo>
constructor and append, but that requires array elements of identical size.  The varying size
of the connection option types is unhelpful here.  Maybe they should be counted_ptr based
pimpl structs of identical size.

This patch can also be viewed as the "reconnect" branch of https://github.com/cliffjansen/qpid-proton.


  examples/cpp/CMakeLists.txt 34edb83 
  examples/cpp/connection_options.cpp PRE-CREATION 
  proton-c/bindings/cpp/CMakeLists.txt 9f423fb 
  proton-c/bindings/cpp/include/proton/connection_options.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/container.hpp 059416f 
  proton-c/bindings/cpp/include/proton/reconnect_timer.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/transport.hpp 3d602b7 
  proton-c/bindings/cpp/src/blocking_connection_impl.cpp 8abd24b 
  proton-c/bindings/cpp/src/connection.cpp 1b35e03 
  proton-c/bindings/cpp/src/connection_options.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/connector.hpp b311cc9 
  proton-c/bindings/cpp/src/connector.cpp 49660ea 
  proton-c/bindings/cpp/src/container.cpp 13f12d9 
  proton-c/bindings/cpp/src/container_impl.hpp ec356e2 
  proton-c/bindings/cpp/src/container_impl.cpp fc97a3e 
  proton-c/bindings/cpp/src/reconnect_timer.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/transport.cpp 58114ae 

Diff: https://reviews.apache.org/r/39694/diff/


Linux only


Cliff Jansen

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message