roo_transport
API Documentation for roo_transport
Loading...
Searching...
No Matches
link_transport.cpp
Go to the documentation of this file.
2
3namespace roo_transport {
4
6 LinkBufferSize recvbuf)
7 : LinkTransport(sender, "", sendbuf, recvbuf) {}
8
9LinkTransport::LinkTransport(PacketSender& sender, roo::string_view name,
10 LinkBufferSize sendbuf, LinkBufferSize recvbuf)
11 : sender_(sender), channel_(sender_, sendbuf, recvbuf, name) {}
12
13void LinkTransport::processIncomingPacket(const roo::byte* buf, size_t len) {
14 channel_.packetReceived(buf, len);
15}
16
17Link LinkTransport::connectAsync(std::function<void()> disconnect_fn) {
18 uint32_t my_stream_id = channel_.connect(std::move(disconnect_fn));
19 return Link(channel_, my_stream_id);
20}
21
22Link LinkTransport::connect(std::function<void()> disconnect_fn) {
23 Link conn = connectAsync(std::move(disconnect_fn));
24 conn.awaitConnected();
25 return conn;
26}
27
28} // namespace roo_transport
Link connectAsync(std::function< void()> disconnect_fn=nullptr)
Link connect(std::function< void()> disconnect_fn=nullptr)
LinkTransport(PacketSender &sender, LinkBufferSize sendbuf=kBufferSize4KB, LinkBufferSize recvbuf=kBufferSize4KB)
void processIncomingPacket(const roo::byte *buf, size_t len)
Abstraction for sending packets over an underlying medium.