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