renamed some funcs and added partial write funcs
This commit is contained in:
@@ -103,12 +103,30 @@ bool cbuf_write_n(CircularBuffer *inst, const uint8_t *b, uint16_t count)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint16_t cbuf_write_partial(CircularBuffer *inst, const uint8_t *b, uint16_t max)
|
||||||
|
{
|
||||||
|
uint16_t i;
|
||||||
|
for (i = 0; i < max; i++) {
|
||||||
|
if (cbuf_empty(inst)) break;
|
||||||
|
cbuf_write(inst, *(b + i));
|
||||||
|
}
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool cbuf_write_string(CircularBuffer *inst, const char *str)
|
bool cbuf_write_string(CircularBuffer *inst, const char *str)
|
||||||
{
|
{
|
||||||
return cbuf_write_n(inst, (uint8_t *) str, strlen(str));
|
return cbuf_write_n(inst, (uint8_t *) str, strlen(str));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint16_t cbuf_write_string_partial(CircularBuffer *inst, const char *str)
|
||||||
|
{
|
||||||
|
return cbuf_write_partial(inst, (uint8_t *) str, strlen(str));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool cbuf_read_n(CircularBuffer *inst, uint8_t *buf, uint16_t len)
|
bool cbuf_read_n(CircularBuffer *inst, uint8_t *buf, uint16_t len)
|
||||||
{
|
{
|
||||||
if (cbuf_data_size(inst) < len) return false;
|
if (cbuf_data_size(inst) < len) return false;
|
||||||
@@ -132,7 +150,7 @@ bool cbuf_read_string(CircularBuffer *inst, char *str, uint16_t len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint16_t cbuf_read_upto(CircularBuffer *inst, uint8_t *buf, uint16_t max)
|
uint16_t cbuf_read_partial(CircularBuffer *inst, uint8_t *buf, uint16_t max)
|
||||||
{
|
{
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
for (i = 0; i < max; i++) {
|
for (i = 0; i < max; i++) {
|
||||||
@@ -144,9 +162,9 @@ uint16_t cbuf_read_upto(CircularBuffer *inst, uint8_t *buf, uint16_t max)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint16_t cbuf_read_string_upto(CircularBuffer *inst, char *str, uint16_t max)
|
uint16_t cbuf_read_string_partial(CircularBuffer *inst, char *str, uint16_t max)
|
||||||
{
|
{
|
||||||
uint16_t cnt = cbuf_read_upto(inst, (uint8_t *) str, max);
|
uint16_t cnt = cbuf_read_partial(inst, (uint8_t *) str, max);
|
||||||
str[cnt] = 0;
|
str[cnt] = 0;
|
||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,10 @@ bool cbuf_write(CircularBuffer *inst, uint8_t b);
|
|||||||
bool cbuf_read(CircularBuffer *inst, uint8_t *b);
|
bool cbuf_read(CircularBuffer *inst, uint8_t *b);
|
||||||
|
|
||||||
|
|
||||||
/** Get byte at the read cursor, without incrementing it. False on empty. */
|
/**
|
||||||
|
* Get byte at the read cursor, without incrementing it.
|
||||||
|
* False on empty.
|
||||||
|
*/
|
||||||
bool cbuf_peek(CircularBuffer *inst, uint8_t *b);
|
bool cbuf_peek(CircularBuffer *inst, uint8_t *b);
|
||||||
|
|
||||||
|
|
||||||
@@ -47,37 +50,51 @@ uint16_t cbuf_free_space(CircularBuffer *inst);
|
|||||||
void cbuf_clear(CircularBuffer *inst);
|
void cbuf_clear(CircularBuffer *inst);
|
||||||
|
|
||||||
|
|
||||||
/** Write N bytes. Returns success */
|
/** Write N bytes, or none. Returns success */
|
||||||
bool cbuf_write_n(CircularBuffer *inst, const uint8_t *b, uint16_t count);
|
bool cbuf_write_n(CircularBuffer *inst, const uint8_t *b, uint16_t count);
|
||||||
|
|
||||||
|
|
||||||
/** Write a string (without \0) */
|
/** Try to write N bytes. Returns actual number of bytes written. */
|
||||||
|
uint16_t cbuf_write_partial(CircularBuffer *inst, const uint8_t *b, uint16_t max);
|
||||||
|
|
||||||
|
|
||||||
|
/** Write a string (excluding \0) - or nothing. */
|
||||||
bool cbuf_write_string(CircularBuffer *inst, const char *str);
|
bool cbuf_write_string(CircularBuffer *inst, const char *str);
|
||||||
|
|
||||||
|
|
||||||
/** Read N bytes, if available. Returns success. */
|
/**
|
||||||
|
* Try to write string (excluding \0).
|
||||||
|
* Returns actual number of chars written.
|
||||||
|
*/
|
||||||
|
uint16_t cbuf_write_string_partial(CircularBuffer *inst, const char *str);
|
||||||
|
|
||||||
|
|
||||||
|
/** Read N bytes, or none. Returns success. */
|
||||||
bool cbuf_read_n(CircularBuffer *inst, uint8_t *buf, uint16_t len);
|
bool cbuf_read_n(CircularBuffer *inst, uint8_t *buf, uint16_t len);
|
||||||
|
|
||||||
|
|
||||||
|
/** Read up to N bytes. Returns byte count */
|
||||||
|
uint16_t cbuf_read_partial(CircularBuffer *inst, uint8_t *buf, uint16_t max);
|
||||||
|
|
||||||
|
|
||||||
/** Read string of given length, append \0. `str` must be len+1 long */
|
/** Read string of given length, append \0. `str` must be len+1 long */
|
||||||
bool cbuf_read_string(CircularBuffer *inst, char *str, uint16_t len);
|
bool cbuf_read_string(CircularBuffer *inst, char *str, uint16_t len);
|
||||||
|
|
||||||
|
|
||||||
/** Read up to N bytes. Returns byte count */
|
/**
|
||||||
uint16_t cbuf_read_upto(CircularBuffer *inst, uint8_t *buf, uint16_t max);
|
* Read string up to N chars long, append \0.
|
||||||
|
* `str` must be max+1 long
|
||||||
|
*/
|
||||||
/** Read string up to N chars long, append \0. `str` must be max+1 long */
|
uint16_t cbuf_read_string_partial(CircularBuffer *inst, char *str, uint16_t max);
|
||||||
uint16_t cbuf_read_string_upto(CircularBuffer *inst, char *str, uint16_t max);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search buffer and return position of the first occurence
|
* Search buffer and return position of the first occurence
|
||||||
* of the given byte (position relative to read_pos).
|
* of the given byte (position relative to read_pos).
|
||||||
*
|
*
|
||||||
* The returned value is zero-based, add 1 to get string
|
* The returned value is zero-based, add 1 to get string
|
||||||
* length including the delimiter.
|
* length including the delimiter.
|
||||||
*
|
*
|
||||||
* Returns -1 if not found.
|
* Returns -1 if not found.
|
||||||
*/
|
*/
|
||||||
int32_t cbuf_find(CircularBuffer *inst, uint8_t b);
|
int32_t cbuf_find(CircularBuffer *inst, uint8_t b);
|
||||||
|
|||||||
Reference in New Issue
Block a user