-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/39694/
-----------------------------------------------------------
Review request for qpid, Alan Conway, Andrew Stitcher, and Justin Ross.
Bugs: PROTON-865
https://issues.apache.org/jira/browse/PROTON-865
Repository: qpid-proton-git
Description
-------
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.
Diffs
-----
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/
Testing
-------
Linux only
Thanks,
Cliff Jansen