![]() |
libfilezilla
|
The buffer class is a simple buffer where data can be appended at the end and consumed at the front. Think of it as a deque with contiguous storage. More...
#include <buffer.hpp>
Public Member Functions | |
| buffer (size_t capacity) | |
| Initially reserves the passed capacity. | |
| buffer (buffer const &buf) | |
| buffer (buffer &&buf) | |
| buffer & | operator= (buffer const &buf) |
| buffer & | operator= (buffer &&buf) |
| unsigned char * | get () |
| unsigned char * | get (size_t write_size) |
| Returns a writable buffer guaranteed to be large enough for write_size bytes, call add when done. More... | |
| void | add (size_t added) |
| void | consume (size_t consumed) |
| Removes consumed bytes from the beginning of the buffer. More... | |
| size_t | size () const |
| void | clear () |
| void | append (unsigned char const *data, size_t len) |
| Appends the passed data to the buffer. More... | |
| void | append (std::string const &str) |
| bool | empty () const |
| operator bool () const | |
| void | reserve (size_t capacity) |
| unsigned char | operator[] (size_t i) const |
| Gets element at offset i. Does not do bounds checking. | |
| unsigned char & | operator[] (size_t i) |
The buffer class is a simple buffer where data can be appended at the end and consumed at the front. Think of it as a deque with contiguous storage.
This class is useful when buffering data for sending over the network, or for buffering data for further piecemeal processing after having received it.
| void append | ( | unsigned char const * | data, |
| size_t | len | ||
| ) |
Appends the passed data to the buffer.
The number of reallocations as result to repeated append are armortized O(1)
| void clear | ( | ) |
Does not release the memory.
| void consume | ( | size_t | consumed | ) |
Removes consumed bytes from the beginning of the buffer.
Undefined if consumed > size
| unsigned char* get | ( | size_t | write_size | ) |
Returns a writable buffer guaranteed to be large enough for write_size bytes, call add when done.
1.8.6