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

(Updated Dec. 2, 2015, 2:30 p.m.)


Review request for qpid, Andrew Stitcher and Cliff Jansen.


Changes
-------

Fixed last remaining objections - `void*` base for template and dropped 
inclusion of object.h


Repository: qpid-proton-git


Description (updated)
-------

- got rid of proton::counted base class
- use direct, native pn refcounts for connection contexts.
- remove mention of internal context types and functions from public headers.

PROTON-1068: c++: Remove owned_object

owned_object<> is actually exactly equivalent to the take_ownership constructor
of object<> combined with the C++11 move constructor. Since it behaves correctly
in C++03 also (with only the added cost of a single inc/dec ref) and is only
used in one place, it seems better to remove the extra complexity.

PROTON-1068: c++: Remove counted_ptr

Replace all use of counted_ptr with object<> for consistent memory management.

PROTON-1068: c++ rename data::op== and < to avoid clash with object<> ops.


PROTON-1068: Restore protected object, introduce pn_ptr for internal refcounts.

Introduce internal pn_ptr for internal refcounted pointer use.
Simplify & restore safety of object<> base class.

PROTON-1068: Fix astitcher issues raised on reviewboard 
https://reviews.apache.org/r/4079

Context classes:
- single context base class with a single pn_class_t declared using normal C 
macros.
- arbitrary C++ payload type can be created and destructed correctly wihtout  
an extra allocation.
- renamed data::opeartor= to copy to avoid clashs with object<>::op= (it is a 
data copy not a clone)
- removed operator bool, made op == and < operators friends

PROTON-1068: Fix final astitcher issues raised on reviewboard 
https://reviews.apache.org/r/4079


Diffs (updated)
-----

  proton-c/bindings/cpp/CMakeLists.txt 47ca937991f4f6ee8b6aa947772acbd1f6d8022e 
  proton-c/bindings/cpp/include/proton/blocking_link.hpp 
2b0a089e8990100add0bbc043b40bda5fc6b958c 
  proton-c/bindings/cpp/include/proton/connection.hpp 
cc8c5ba6f5616dc1062ae7c137f4591f7dcef6e6 
  proton-c/bindings/cpp/include/proton/counted.hpp 
2195d93da85a4d61428449f79f2006b2203ef222 
  proton-c/bindings/cpp/include/proton/counted_ptr.hpp 
0865e4ace6d2534f7f6ecc0f1c1a1899f4a09db7 
  proton-c/bindings/cpp/include/proton/data.hpp 
e74b77b92cb00750dc22dd02a90123c7cdc98c67 
  proton-c/bindings/cpp/include/proton/handler.hpp 
70da48b217faade1262698d274e42e61f06c5939 
  proton-c/bindings/cpp/include/proton/object.hpp 
118f40d15e97d3ea665d916d198ebf4177344ea6 
  proton-c/bindings/cpp/include/proton/reactor.hpp 
5f628ce0d3619746fa546e8e10773ee5c1d417e6 
  proton-c/bindings/cpp/include/proton/value.hpp 
661de51f8a0c75f05d5c76f4bd0385f911a8ec60 
  proton-c/bindings/cpp/src/connection.cpp 
733facebd630803d14160c73bafcbca13aa293b7 
  proton-c/bindings/cpp/src/connection_options.cpp 
6d5b8297c470b0ad4d0188115bba640a8ac249fa 
  proton-c/bindings/cpp/src/container_impl.hpp 
d9401d09a5e8b4efe87a697e10e1d9a7979b4d0f 
  proton-c/bindings/cpp/src/container_impl.cpp 
bb4f4c5ab5c2388297a460746e0b736e98c21665 
  proton-c/bindings/cpp/src/contexts.hpp 
a0e6cf6f4615aa681c5ad7931e79a5ec7f856642 
  proton-c/bindings/cpp/src/contexts.cpp 
4d17e545976d4a2672006f4288b4f66d2062be7a 
  proton-c/bindings/cpp/src/counted_ptr.cpp 
261d5ec0205b44b90aeebbac901e856f5c7344a2 
  proton-c/bindings/cpp/src/data.cpp 8a45d6bf0febb602de40d96c727c1a95cf002171 
  proton-c/bindings/cpp/src/decoder.cpp 
f14345db20f0d7d00572211cff4eed52a4d8c2a8 
  proton-c/bindings/cpp/src/encoder.cpp 
a0b10c017ca94981b7538fc2f60643c4e35d7f6a 
  proton-c/bindings/cpp/src/link.cpp 587dec92e7fe0fa40696b66dcffb4b74b9c1b4d0 
  proton-c/bindings/cpp/src/message.cpp 
7c032f01e828ac36ff47054c42164953897fe8e0 
  proton-c/bindings/cpp/src/messaging_adapter.cpp 
e3bced871c3836ce3c58a0cece7bea3c223e5a87 
  proton-c/bindings/cpp/src/object.cpp d5fb7ef95cc8c29b74897cbd9ec8173a61c8a9af 
  proton-c/bindings/cpp/src/reactor.cpp 
9a52d995b5bdbf393ed1dc49c69903f3f526516e 
  proton-c/bindings/cpp/src/session.cpp 
e9030804b92034705b74945d1ff92a1239bec4a3 
  proton-c/bindings/cpp/src/value.cpp be5ca5edfc60dfa523d6c00cd2a551942612e22a 

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


Testing
-------

ctest -R cpp with valgrind, no leaks.


Thanks,

Alan Conway

Reply via email to