You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lokinet/llarp/buffer.cpp

28 lines
518 B
C++

#include <llarp/buffer.h>
#include <cstring>
extern "C" {
size_t llarp_buffer_size_left(llarp_buffer_t *buff) {
std::ptrdiff_t diff = buff->cur - buff->base;
if (diff < 0) {
return 0;
} else if (diff > buff->sz)
return 0;
else
return buff->sz - diff;
}
bool llarp_buffer_write(llarp_buffer_t * buff, const void * data, size_t sz)
{
size_t left = llarp_buffer_size_left(buff);
if (sz > left)
{
return false;
}
std::memcpy(buff->cur, data, sz);
buff->cur += sz;
return true;
}
}