2#include <ossia/network/sockets/writers.hpp>
4#include <boost/asio/buffer.hpp>
5#include <boost/asio/error.hpp>
6#include <boost/asio/write.hpp>
13 template <
typename Socket>
17 void write(
const char* data, std::size_t sz)
19 this->write(socket, boost::asio::buffer(data, sz));
23 void write(T& sock,
const boost::asio::const_buffer& buf)
25 boost::asio::write(sock, buf);
29 void write(multi_socket_writer<T>& sock,
const boost::asio::const_buffer& buf)
35 template <
typename Socket>
39 alignas(64) uint8_t m_readbuf[4096];
41 explicit decoder(Socket& s)
47 decoder(
const decoder&) =
delete;
48 decoder(decoder&&) =
delete;
49 decoder& operator=(
const decoder&) =
delete;
50 decoder& operator=(decoder&&) =
delete;
55 socket.async_read_some(
56 boost::asio::buffer(m_readbuf),
58 f = std::move(f)](boost::system::error_code ec, std::size_t sz)
mutable {
59 if(!f.validate_stream(ec))
63 receive(std::move(f));