implementation of buffers to ease operations More...
|The current position used for reading/writing. |
|The read/write limit. |
|The amount of data the buffer can contain. |
|The data contained in the buffer. |
|If the buffer is fixed it cannot be resized. |
|If the buffer is vfixed, no more than capacity bytes willl be written to _data, however the _position counter will be updated with the amount that would have been written in consecutive writes. More...|
|The current state of the buffer. More...|
implementation of buffers to ease operations
sldns_buffers can contain arbitrary information, per octet. You can write to the current end of a buffer, read from the current position, and access any data within it.
If the buffer is vfixed, no more than capacity bytes willl be written to _data, however the _position counter will be updated with the amount that would have been written in consecutive writes.
This allows for a modus operandi in which a sequence is written on a fixed capacity buffer (perhaps with _data on stack). When everything could be written, then the _data is immediately usable, if not, then a buffer could be allocated sized precisely to fit the data for a second attempt.
Referenced by sldns_buffer_at(), sldns_buffer_init_frm_data(), sldns_buffer_init_vfixed_frm_data(), sldns_buffer_new(), sldns_buffer_new_frm_data(), sldns_buffer_set_at(), sldns_buffer_set_position(), sldns_buffer_skip(), sldns_buffer_write_at(), sldns_buffer_write_u16_at(), sldns_buffer_write_u32_at(), sldns_buffer_write_u48_at(), and sldns_buffer_write_u8_at().