Vanetza
Loading...
Searching...
No Matches
asio_stream.hpp
1#pragma once
2#include <boost/asio/ip/tcp.hpp>
3#include <kj/async-io.h>
4
5namespace vanetza
6{
7namespace rpc
8{
9
10class AsioStream : public kj::AsyncIoStream
11{
12public:
13 AsioStream(boost::asio::ip::tcp::socket socket);
14
15 void shutdownWrite() override;
16 kj::Promise<void> write(const void* buffer, size_t size) override;
17 kj::Promise<void> write(kj::ArrayPtr<const kj::ArrayPtr<const kj::byte>> pieces) override;
18 kj::Promise<void> whenWriteDisconnected() override;
19 kj::Promise<size_t> tryRead(void* buffer, size_t minBytes, size_t maxBytes) override;
20
21private:
22 boost::asio::ip::tcp::socket socket_;
23};
24
25} // namepsace rpc
26} // namespace vanetza