mirror of https://github.com/PentHertz/srsLTE.git
buffer_pool: add helper to build byte_buffer from raw payload+len
This commit is contained in:
parent
45d59cf686
commit
97997b6d0b
|
@ -178,6 +178,23 @@ inline unique_byte_buffer_t make_byte_buffer(const char* debug_ctxt) noexcept
|
|||
return buffer;
|
||||
}
|
||||
|
||||
inline unique_byte_buffer_t make_byte_buffer(const uint8_t* payload, uint32_t len, const char* debug_ctxt) noexcept
|
||||
{
|
||||
std::unique_ptr<byte_buffer_t> buffer(new (std::nothrow) byte_buffer_t());
|
||||
if (buffer == nullptr) {
|
||||
srslog::fetch_basic_logger("POOL").error("Failed to allocate byte buffer in %s", debug_ctxt);
|
||||
} else {
|
||||
if (buffer->get_tailroom() >= len) {
|
||||
memcpy(buffer->msg, payload, len);
|
||||
buffer->N_bytes = len;
|
||||
} else {
|
||||
srslog::fetch_basic_logger("POOL").error(
|
||||
"Failed to create byte buffer in %s. Payload too large (%d > %d)", debug_ctxt, len, buffer->get_tailroom());
|
||||
}
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
||||
struct byte_buffer_pool_deleter {
|
||||
|
|
Loading…
Reference in New Issue