From ebc9c3220e98916d144f9946106c0278e1754b48 Mon Sep 17 00:00:00 2001 From: Dmytro Bogovych Date: Wed, 23 Jul 2025 08:36:41 +0300 Subject: [PATCH] - support std::span in ByteBuffer --- src/libs/ice/ICEByteBuffer.cpp | 9 +++++++++ src/libs/ice/ICEByteBuffer.h | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/src/libs/ice/ICEByteBuffer.cpp b/src/libs/ice/ICEByteBuffer.cpp index 4f99e8c4..ffc6d180 100644 --- a/src/libs/ice/ICEByteBuffer.cpp +++ b/src/libs/ice/ICEByteBuffer.cpp @@ -53,6 +53,10 @@ ByteBuffer::ByteBuffer(const void* packetPtr, size_t packetSize, CopyBehavior be } } +ByteBuffer::ByteBuffer(const std::span& packet, CopyBehavior behavior) + : ByteBuffer(packet.data(), packet.size(), behavior) +{} + ByteBuffer::~ByteBuffer() { if (mCopyBehavior == CopyBehavior::CopyMemory) @@ -105,6 +109,11 @@ uint8_t* ByteBuffer::mutableData() return mDataPtr; } +std::span ByteBuffer::span() +{ + return {mDataPtr, mDataSize}; +} + NetworkAddress& ByteBuffer::remoteAddress() { return mRemoteAddress; diff --git a/src/libs/ice/ICEByteBuffer.h b/src/libs/ice/ICEByteBuffer.h index ac848059..84ec1171 100644 --- a/src/libs/ice/ICEByteBuffer.h +++ b/src/libs/ice/ICEByteBuffer.h @@ -12,6 +12,7 @@ #include #include #include +#include #include "ICETypes.h" #include "ICEAddress.h" @@ -30,6 +31,8 @@ namespace ice ByteBuffer(size_t initialCapacity); ByteBuffer(const ByteBuffer& src); ByteBuffer(const void* packetPtr, size_t packetSize, CopyBehavior behavior = CopyBehavior::CopyMemory); + ByteBuffer(const std::span& packet, CopyBehavior behavior = CopyBehavior::CopyMemory); + ~ByteBuffer(); ByteBuffer& operator = (const ByteBuffer& src); @@ -39,6 +42,7 @@ namespace ice size_t size() const; const uint8_t* data() const; uint8_t* mutableData(); + std::span span(); NetworkAddress& remoteAddress(); void setRemoteAddress(const NetworkAddress& addr);