]
Bela Ban commented on JGRP-1951:
--------------------------------
- {{WriteBuffers}} was merged into {{Buffers}}
- Reading into a variable number of buffers is possible by adding (e.g.) 3 buffers, doing
a scattering read and reading the individual buffers, see
{{BuffersTest.testRead3Buffers()}} for an example
Flexible buffers for scatter/gather
-----------------------------------
Key: JGRP-1951
URL:
https://issues.jboss.org/browse/JGRP-1951
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.6.7
Currently, {{Buffers}} and {{WriteBuffers}} are inflexible in that they always expect a
length buffer followed by data ({{Buffers}}), or a sequence of len/data pairs
({{WriteBuffers}}).
This is bad if we for example want to read a sequence like the one below (for connection
establishment in TCP):
{noformat}
| cookie | version | len | peer-address |
(4) (2) (2) (variable)
{noformat}
Goals:
* Have only 1 buffer, for reading *and* writing
* Allow to define the sequence by adding buffers dynamically, e.g. in the above case,
we'd add a 4 and a 2-length buffer and read data into them. If the cookie and version
don't match, throw an exception, else *dynamically* add a length buffer (possibly
doing a clear() which removes the first 2 buffers), read data into it, then add a new
buffer sized to the read length and finally read data into it.