73[[nodiscard]]
inline std::vector<WSABUF>
toWSABUF(
const BufferView* buffers,
const std::size_t count)
75 std::vector<WSABUF> vec(count);
76 for (std::size_t i = 0; i < count; ++i)
78 vec[i].len =
static_cast<ULONG
>(buffers[i].
size);
79 vec[i].buf =
static_cast<CHAR*
>(buffers[i].
data);
102[[nodiscard]]
inline std::vector<WSABUF>
toWSABUF(
const std::span<const BufferView> buffers)
104 return toWSABUF(buffers.data(), buffers.size());
130[[nodiscard]]
inline std::vector<iovec>
toIOVec(
const BufferView* buffers,
const std::size_t count)
132 std::vector<iovec> vec(count);
133 for (std::size_t i = 0; i < count; ++i)
135 vec[i].iov_base = buffers[i].
data;
136 vec[i].iov_len = buffers[i].
size;
161[[nodiscard]]
inline std::vector<iovec>
toIOVec(
const std::span<const BufferView> buffers)
163 return toIOVec(buffers.data(), buffers.size());
Common platform and utility includes for jsocketpp.
std::vector< iovec > toIOVec(const BufferView *buffers, const std::size_t count)
Convert a raw array of BufferView elements into an iovec array for POSIX readv/writev.
Definition BufferView.hpp:130
std::vector< WSABUF > toWSABUF(const BufferView *buffers, const std::size_t count)
Convert a raw array of BufferView elements into a WSABUF array for use with Windows socket APIs.
Definition BufferView.hpp:73
Implementation-only utilities and platform abstractions for jsocketpp.
Definition BufferView.hpp:49
A C++ socket library providing Java-style networking interfaces.
Definition BufferView.hpp:13
Represents a raw writable memory region for scatter/gather I/O.
Definition BufferView.hpp:43
void * data
Pointer to the writable memory region.
Definition BufferView.hpp:44
std::size_t size
Size in bytes of the writable region.
Definition BufferView.hpp:45