astitcher commented on a change in pull request #278:
URL: https://github.com/apache/qpid-proton/pull/278#discussion_r563851777
##########
File path: cpp/src/connection.cpp
##########
@@ -192,6 +193,13 @@ std::vector<symbol> connection::desired_capabilities()
const {
return get_multiple<std::vector<symbol> >(caps);
}
+std::map<symbol, value> connection::properties() const {
+ map<symbol, value> props(pn_connection_remote_properties(pn_object()));
+ std::map<symbol, value> props_ret;
+ get(props, props_ret);
+ return props_ret;
Review comment:
It's not the no properties case that is wasteful, it's the with
properties case. There it builds the proton::map unnecessarily and throws it
away. My replacement code doesn't use a proton::map at all. The whole process
is still annoyingly heavyweight, but at least this isn't going to be on the hot
path in any sensible use.
My guess is that you used code like mine initially but without the null
check (because it's the parallel to the capabilities code). But that doesn't
work and fails the unit test you provided.
As the code passes the unit test I'm reasonably sure it doesn't just decode
the first element!
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]