Make frame pooled and holding reference to a buffer, also pooled.
This will allow to create queues/ring buffers of frames, reuse existing buffers (e.g. attach buffer from packet directly to a frame), and reuse existing frames (e.g. return same frame twice).
This is also needed to be able to return frame of different size than requested and thus implement partial reads (#615).
Make frame pooled and holding reference to a buffer, also pooled.
This will allow to create queues/ring buffers of frames, reuse existing buffers (e.g. attach buffer from packet directly to a frame), and reuse existing frames (e.g. return same frame twice).
This is also needed to be able to return frame of different size than requested and thus implement partial reads (#615).
new_packet_buffer()
,new_packet()
new_byte_buffer()
,new_raw_buffer()
Slice<uint8_t> buffer()
void set_buffer(Slice<uint8_t>)
allocate_frame()
,reallocate_frame()
StatusCode write(Frame&)
StatusCode read(Frame&, packet::stream_timestamp_t duration)
set_duration()
hacks: