76[[nodiscard]]
inline std::vector<WSABUF>
toWSABUF(
const BufferView* buffers,
const std::size_t count)
78 std::vector<WSABUF> vec(count);
79 for (std::size_t i = 0; i < count; ++i)
81 vec[i].len =
static_cast<ULONG
>(buffers[i].
size);
82 vec[i].buf =
static_cast<CHAR*
>(buffers[i].
data);
105[[nodiscard]]
inline std::vector<WSABUF>
toWSABUF(
const std::span<const BufferView> buffers)
107 return toWSABUF(buffers.data(), buffers.size());
133[[nodiscard]]
inline std::vector<iovec>
toIOVec(
const BufferView* buffers,
const std::size_t count)
135 std::vector<iovec> vec(count);
136 for (std::size_t i = 0; i < count; ++i)
138 vec[i].iov_base = buffers[i].
data;
139 vec[i].iov_len = buffers[i].
size;
164[[nodiscard]]
inline std::vector<iovec>
toIOVec(
const std::span<const BufferView> buffers)
166 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:133
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:76
Implementation-only utilities and platform abstractions for jsocketpp.
Definition BufferView.hpp:52
A C++ socket library providing Java-style networking interfaces.
Definition BufferView.hpp:16
Represents a raw writable memory region for scatter/gather I/O.
Definition BufferView.hpp:46
void * data
Pointer to the writable memory region.
Definition BufferView.hpp:47
std::size_t size
Size in bytes of the writable region.
Definition BufferView.hpp:48