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 2016/08/11 17:26:35 UTC

Re: Review Request 50989: PROTON-1277: pn_connection_engine to use pn_bytes_t and pn_rwbytes_t

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

(Updated Aug. 11, 2016, 5:26 p.m.)


Review request for qpid, Andrew Stitcher, Cliff Jansen, and Justin Ross.


Changes
-------

As pn_rwbytes_t obsoletes pn_buffer_memory_t replace it everywhere.


Summary (updated)
-----------------

PROTON-1277: pn_connection_engine to use pn_bytes_t and pn_rwbytes_t


Bugs: proton-1277
    https://issues.apache.org/jira/browse/proton-1277


Repository: qpid-proton-git


Description (updated)
-------

Removed types pn_buf_t and pn_cbuf_t.

Replaced pn_cbuf_t with existing public type pn_bytes_t.
Replaced pn_buf_t with new public type pn_rwbytes_t.
Replaced internal pn_buffer_memory_t with pn_rwbytes_t.

PROTON-1277: pn_connection_engine to allow external buffers

Extended the pn_connection_engine interface with use_read/write_buffer functions
to allow an external buffer to be used. API allows user-controlled buffer
re-allocation.

I tried for a "neater" interface but it didn't work out. For async write you
have to separate "get the data" and "all done with the data" so you can't really
make it simpler than it is, and you need to be able to grow both buffers so you
can't really do much to simplify the read side. For reads the transport moves
data around to accumulate complete frames, so you still have to ask "where is
the readable bit" even if you supplied the buffer.

No implementation yet. I feel like we need a clearer idea of what we are trying
to achieve before we commit. This proposal is backwards compatible which takes
some of the pressure off about deciding when to add it.


Diffs (updated)
-----

  proton-c/bindings/cpp/src/io/connection_engine.cpp f15b019b4637971509d9970024236ead10537778 
  proton-c/bindings/go/src/qpid.apache.org/proton/engine.go 5b9dbf069baf491c4b11459da7a27a438253a396 
  proton-c/include/proton/connection_engine.h 4fdeb85713e89256223efc5e93d27c4cb3e37a6b 
  proton-c/include/proton/types.h 3f2ebcbcca058fc9c5a2e4b0d7ef9f754bc069f0 
  proton-c/src/buffer.h 94d48ac39fd1996208f75d990ac426c4a1a46710 
  proton-c/src/buffer.c 64fa61fa4e7de9c4a293f27275444c493ff6f614 
  proton-c/src/codec/codec.c ae77b0845c47b766a1870bc8bd96da2e46795a57 
  proton-c/src/engine/connection_engine.c 75a16ae7c09dcaa46525eee59a225868d5897483 
  proton-c/src/transport/transport.c 1d7cc87fb8f863d8491a38d8d8546613d56064bb 
  proton-c/src/types.c 5433e193bbef31f1e426fe4f286dadac9d9dc64c 

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


Testing (updated)
-------

ctest -E java


Thanks,

Alan Conway