You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Alan Conway <ac...@redhat.com> on 2015/08/12 20:59:20 UTC

Review Request 37408: PROTON-865: Replace proton_handler with simpler pointer-semantic wrapper template.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/37408/
-----------------------------------------------------------

Review request for qpid, Andrew Stitcher and Cliff Jansen.


Repository: qpid-proton-git


Description
-------

Note this diff is from cjansen_cpp_client: bc1491c PROTON-865: Add valgrind to c++ example tests. Note presently fails.
See also: https://reviews.apache.org/r/37217/

Template proton::wrapper<pn_foo_t> simply wraps a pn_foo_t*.  Derived classes
such as link, terminus etc. just provide C++ convenience wrapper functions.
Wrappers are passed by value, like pointers, not by reference.

Exception 1: proton::message has value semantics (copy the message) and owns it's
pn_message_t* but still provides access to the underlying pointer. Functions
returning a message return a message&.
TODO: return by ref is ugly, needs move semantics on C++11. Arguably should be
a plain wrapper<> and provide value semantics in separate class?

Exception 2: proton::connection - TODO.


Diffs
-----

  examples/cpp/client.cpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/acceptor.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/blocking_sender.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/delivery.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/handle.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/link.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/message.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/messaging_adapter.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/proton_handle.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/receiver.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/sender.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/session.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/terminus.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/url.hpp PRE-CREATION 
  proton-c/bindings/cpp/include/proton/wrapper.hpp PRE-CREATION 
  proton-c/bindings/cpp/src/acceptor.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/acking.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/blocking_connection.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/blocking_link.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/blocking_receiver.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/blocking_sender.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/container.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/container_impl.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/contexts.hpp PRE-CREATION 
  proton-c/bindings/cpp/src/data.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/delivery.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/event.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/fetcher.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/link.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/message.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/messaging_event.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/proton_bits.hpp PRE-CREATION 
  proton-c/bindings/cpp/src/proton_bits.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/proton_event.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/proton_impl_ref.hpp PRE-CREATION 
  proton-c/bindings/cpp/src/receiver.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/sender.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/session.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/sync_request_response.cpp PRE-CREATION 
  proton-c/bindings/cpp/src/terminus.cpp PRE-CREATION 
  proton-c/include/proton/link.h d9ddca4a908d4c9aa254ac4f0ca21b4104a06b59 

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


Testing
-------

Passes auto-tests without valgrind. valgrind fails are same as on cjansen_cpp_client.


Thanks,

Alan Conway