|
roo_transport
API Documentation for roo_transport
|
#include <receiver.h>
Public Types | |
| enum | State { kIdle = 0 , kConnecting = 1 , kConnected = 2 , kBroken = 3 } |
Public Member Functions | |
| Receiver (unsigned int recvbuf_log2) | |
| State | state () const |
| bool | eos () const |
| bool | done () const |
| void | setConnected (SeqNum peer_seq_num, bool control_bit) |
| void | setIdle () |
| void | setBroken () |
| size_t | tryRead (roo::byte *buf, size_t count, bool &outgoing_data_ready) |
| int | peek () |
| size_t | availableForRead () const |
| void | reset () |
| void | init (uint32_t my_stream_id) |
| void | markInputClosed (bool &outgoing_data_ready) |
| size_t | ack (roo::byte *buf) |
| size_t | updateRecvHimark (roo::byte *buf, long &next_send_micros) |
| bool | handleDataPacket (bool control_bit, uint16_t seq_id, const roo::byte *payload, size_t len, bool is_final, bool &has_new_data_to_read) |
| bool | empty () const |
| uint32_t | packets_received () const |
| uint32_t | my_stream_id () const |
| unsigned int | buffer_size_log2 () const |
Definition at line 11 of file receiver.h.
| Enumerator | |
|---|---|
| kIdle | |
| kConnecting | |
| kConnected | |
| kBroken | |
Definition at line 13 of file receiver.h.
Definition at line 9 of file receiver.cpp.
| size_t roo_transport::internal::Receiver::ack | ( | roo::byte * | buf | ) |
Definition at line 195 of file receiver.cpp.
References roo_transport::internal::RingBuffer::contains(), roo_transport::internal::FormatPacketHeader(), kConnected, roo_transport::internal::kDataAckPacket, kIdle, and roo_transport::internal::InBuffer::kUnset.
| size_t roo_transport::internal::Receiver::availableForRead | ( | ) | const |
Definition at line 125 of file receiver.cpp.
References roo_transport::internal::RingBuffer::begin(), roo_transport::internal::RingBuffer::empty(), roo_transport::internal::InBuffer::kData, roo_transport::internal::InBuffer::kFin, roo_transport::internal::InBuffer::kUnset, roo_transport::internal::InBuffer::size(), and roo_transport::internal::InBuffer::type().
Definition at line 65 of file receiver.h.
References roo_transport::internal::RingBuffer::capacity_log2().
| bool roo_transport::internal::Receiver::done | ( | ) | const |
Definition at line 50 of file receiver.cpp.
References empty().
|
inline |
Definition at line 58 of file receiver.h.
References roo_transport::internal::RingBuffer::empty().
Referenced by done().
|
inline |
Definition at line 33 of file receiver.h.
| bool roo_transport::internal::Receiver::handleDataPacket | ( | bool | control_bit, |
| uint16_t | seq_id, | ||
| const roo::byte * | payload, | ||
| size_t | len, | ||
| bool | is_final, | ||
| bool & | has_new_data_to_read | ||
| ) |
Definition at line 231 of file receiver.cpp.
References roo_transport::internal::RingBuffer::begin(), roo_transport::internal::InBuffer::clear(), roo_transport::internal::RingBuffer::contains(), roo_transport::internal::RingBuffer::empty(), roo_transport::internal::RingBuffer::end(), kConnecting, roo_transport::internal::InBuffer::kData, roo_transport::internal::InBuffer::kFin, kIdle, roo_transport::internal::InBuffer::kUnset, roo_transport::internal::RingBuffer::pop(), roo_transport::internal::RingBuffer::push(), roo_transport::internal::RingBuffer::restorePosHighBits(), roo_transport::internal::InBuffer::set(), roo_transport::internal::RingBuffer::slotsFree(), and roo_transport::internal::InBuffer::type().
Definition at line 163 of file receiver.cpp.
References roo_transport::internal::RingBuffer::empty(), kConnecting, my_stream_id(), and roo_transport::internal::RingBuffer::pop().
Definition at line 101 of file receiver.cpp.
References roo_transport::internal::RingBuffer::empty(), and roo_transport::internal::RingBuffer::pop().
|
inline |
Definition at line 62 of file receiver.h.
Referenced by init().
|
inline |
Definition at line 60 of file receiver.h.
| int roo_transport::internal::Receiver::peek | ( | ) |
Definition at line 111 of file receiver.cpp.
References roo_transport::internal::RingBuffer::begin(), roo_transport::internal::InBuffer::data(), roo_transport::internal::RingBuffer::empty(), roo_transport::internal::InBuffer::kData, roo_transport::internal::InBuffer::size(), and roo_transport::internal::InBuffer::type().
| void roo_transport::internal::Receiver::reset | ( | ) |
Definition at line 147 of file receiver.cpp.
References roo_transport::internal::RingBuffer::begin(), roo_transport::internal::InBuffer::clear(), roo_transport::internal::RingBuffer::empty(), kIdle, and roo_transport::internal::RingBuffer::pop().
| void roo_transport::internal::Receiver::setBroken | ( | ) |
Definition at line 40 of file receiver.cpp.
References roo_transport::internal::RingBuffer::empty(), and setIdle().
Definition at line 25 of file receiver.cpp.
References roo_transport::internal::RingBuffer::empty(), kConnected, roo_transport::internal::SeqNum::raw(), and roo_transport::internal::RingBuffer::reset().
| void roo_transport::internal::Receiver::setIdle | ( | ) |
Definition at line 33 of file receiver.cpp.
References kIdle.
Referenced by setBroken(), and tryRead().
|
inline |
Definition at line 32 of file receiver.h.
| size_t roo_transport::internal::Receiver::tryRead | ( | roo::byte * | buf, |
| size_t | count, | ||
| bool & | outgoing_data_ready | ||
| ) |
Definition at line 54 of file receiver.cpp.
References roo_transport::internal::RingBuffer::begin(), roo_transport::internal::InBuffer::clear(), roo_transport::internal::InBuffer::data(), roo_transport::internal::RingBuffer::empty(), kBroken, kConnecting, roo_transport::internal::InBuffer::kFin, kIdle, roo_transport::internal::InBuffer::kUnset, roo_transport::internal::RingBuffer::pop(), setIdle(), roo_transport::internal::InBuffer::size(), roo_transport::internal::RingBuffer::slotsUsed(), and roo_transport::internal::InBuffer::type().
| size_t roo_transport::internal::Receiver::updateRecvHimark | ( | roo::byte * | buf, |
| long & | next_send_micros | ||
| ) |
Definition at line 174 of file receiver.cpp.
References roo_transport::internal::RingBuffer::begin(), roo_transport::internal::RingBuffer::capacity(), roo_transport::internal::FormatPacketHeader(), kConnecting, roo_transport::internal::kFlowControlPacket, and kIdle.