12class LinkStream :
public Stream {
16 LinkStream() =
default;
19 LinkStream(Link link);
21 int available()
override;
27 size_t readBytes(
char* buffer,
size_t length)
override;
28 size_t readBytes(uint8_t* buffer,
size_t length)
override;
30 size_t readBytes(
char* buffer,
size_t length);
31 size_t readBytes(uint8_t* buffer,
size_t length);
34 size_t write(uint8_t)
override;
35 size_t write(
const uint8_t* buffer,
size_t size)
override;
36 int availableForWrite()
override;
37 void flush()
override;
41 LinkInputStream& in() {
return link_.in(); }
45 LinkOutputStream& out() {
return link_.out(); }
52 void awaitConnected();
59 bool awaitConnected(roo_time::Duration timeout);
62 Link& link() {
return link_; }
65 const Link& link()
const {
return link_; }
68 void set(Link&& link) { link_ = std::move(link); }
71 friend class StreamLinkTransport;
73 LinkStream(Channel& channel, uint32_t my_stream_id);
75 size_t timedRead(roo::byte* buf,
size_t count, roo_time::Duration timeout);