.. _program_listing_file_BackendAsyncmsg_SendMessageUnbuffered.cpp: Program Listing for File SendMessageUnbuffered.cpp ================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``BackendAsyncmsg/SendMessageUnbuffered.cpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #include "SendMessageUnbuffered.hpp" #include netio3::asyncmsg::SendMessageUnbuffered::SendMessageUnbuffered( const std::span data, const std::span header_data, const std::uint64_t key) : m_data{data}, m_header_data{header_data.begin(), header_data.end()}, m_key{key} {} netio3::asyncmsg::SendMessageUnbuffered::SendMessageUnbuffered( const std::span data, const std::span header_data, const std::uint64_t key) : m_data{[data]() { auto transformed = std::vector>{}; std::ranges::transform( data, std::back_inserter(transformed), [](const auto& entry) -> decltype(transformed)::value_type { return {static_cast(entry.iov_base), entry.iov_len}; }); return transformed; }()}, m_header_data{header_data.begin(), header_data.end()}, m_key{key} {} void netio3::asyncmsg::SendMessageUnbuffered::toBuffers( std::vector& buffers) const { const boost::asio::const_buffer headerDataBuffer(m_header_data.data(), std::size(m_header_data)); buffers.push_back(headerDataBuffer); std::ranges::transform(m_data, std::back_inserter(buffers), [](const auto& entry) { return boost::asio::const_buffer(entry.data(), std::size(entry)); }); }