Github Repo | C Header | C source | JS source |
---|---|---|---|
cesanta/mongoose-os | mbuf.h | mbuf.c |
Mbufs are mutable/growing memory buffers, like C++ strings. Mbuf can append data to the end of a buffer or insert data into arbitrary position in the middle of a buffer. The buffer grows automatically when needed.
void mbuf_init(struct mbuf *, size_t initial_capacity);
Initialises an Mbuf.
initial_capacity
specifies the initial capacity of the mbuf.
void mbuf_free(struct mbuf *);
Frees the space allocated for the mbuffer and resets the mbuf structure.
size_t mbuf_append(struct mbuf *, const void *data, size_t data_size);
Appends data to the Mbuf.
Returns the number of bytes appended or 0 if out of memory.
size_t mbuf_append_and_free(struct mbuf *, void *data, size_t data_size);
Appends data to the Mbuf and frees it (data must be heap-allocated).
Returns the number of bytes appended or 0 if out of memory. data is freed irrespective of return value.
size_t mbuf_insert(struct mbuf *, size_t, const void *, size_t);
Inserts data at a specified offset in the Mbuf.
Existing data will be shifted forwards and the buffer will be grown if necessary. Returns the number of bytes inserted.
void mbuf_remove(struct mbuf *, size_t data_size);
Removes
data_size
bytes from the beginning of the buffer.
void mbuf_resize(struct mbuf *, size_t new_size);
Resizes an Mbuf.
If
new_size
is smaller than buffer'slen
, the resize is not performed.
void mbuf_move(struct mbuf *from, struct mbuf *to);
Moves the state from one mbuf to the other.
void mbuf_clear(struct mbuf *);
Removes all the data from mbuf (if any).
void mbuf_trim(struct mbuf *);
edit this docShrinks an Mbuf by resizing its
size
tolen
.