2#include <ossia/detail/config.hpp>
4#include <boost/asio/buffer.hpp>
5#include <boost/asio/error.hpp>
31 [[nodiscard]] std::weak_ptr<void> watch()
const noexcept {
return m_token; }
35 void reset() noexcept { m_token.reset(); }
38 std::shared_ptr<void> m_token{std::make_shared<char>()};
45 void operator()(
const char* data, std::size_t sz)
const { socket.write(data, sz); }
48template <
typename Socket>
49struct multi_socket_writer
51 std::vector<Socket>& sockets;
52 void write(
const boost::asio::const_buffer& buf)
54 for(
auto& sock : sockets)
59 void write_some(
const boost::asio::const_buffer& buf)
61 for(
auto& sock : sockets)
68template <
typename T,
typename F>
69struct stream_processor
73 template <
typename... Args>
74 void operator()(Args&&... args)
const
76 this->on_message(std::forward<Args>(args)...);
79 bool validate_stream(boost::system::error_code ec)
const
81 if(ec == boost::asio::error::operation_aborted)
87 if(ec == boost::asio::error::eof)
Definition writers.hpp:24
void reset() noexcept
Definition writers.hpp:35