class SSReader

An internal class for reading from a socket stream. This serves as a base class for both ISocketStream and SocketStream; its purpose is to minimize redundant code between them. Do not use it directly.

Inheritance diagram

Inheritance diagram of SSReader

virtual void close(void) = 0
int get_tcp_header_size(void) const

Returns the header size for datagrams. See set_tcp_header_size().

virtual bool is_closed(void) = 0
bool receive_datagram(Datagram &dg)

Receives a datagram over the socket by expecting a little-endian 16-bit byte count as a prefix. If the socket stream is non-blocking, may return false if the data is not available; otherwise, returns false only if the socket closes.

void set_tcp_header_size(int tcp_header_size)

Sets the header size for datagrams. At the present, legal values for this are 0, 2, or 4; this specifies the number of bytes to use encode the datagram length at the start of each TCP datagram. Sender and receiver must independently agree on this.