PL::NetworkStream class

class NetworkStream : public PL::Stream

Network stream class.

Public Functions

inline NetworkStream()

Creates a closed network stream.

NetworkStream(int sock)

Creates an open network stream.

Parameters:

sock – stream socket

virtual esp_err_t Lock(TickType_t timeout = portMAX_DELAY) override

Locks the object.

Parameters:

timeout – timeout in FreeRTOS ticks

Returns:

error code

virtual esp_err_t Unlock() override

Unlocks the object.

Returns:

error code

virtual esp_err_t Read(void *dest, size_t size) override

Reads the data from the stream.

Parameters:
  • dest – destination (can be NULL)

  • size – number of bytes to read

Returns:

error code

virtual esp_err_t Write(const void *src, size_t size) override

Writes the data to the stream.

Parameters:
  • src – source

  • size – number of bytes to write

Returns:

error code

esp_err_t Close()

Closes the stream.

Returns:

error code

esp_err_t EnableNagleAlgorithm()

Enables the Nagle’s algorithm.

Returns:

error code

esp_err_t DisableNagleAlgorithm()

Disables the Nagle’s algorithm.

Returns:

error code

esp_err_t EnableKeepAlive()

Enables the keep-alive packets.

Returns:

error code

esp_err_t DisableKeepAlive()

Disables the keep-alive packets.

Returns:

error code

bool IsOpen()

Checks if the stream is open.

Returns:

true if the stream is open

virtual size_t GetReadableSize() override

Gets the number of bytes that are available for reading from the stream.

Returns:

number of bytes

virtual TickType_t GetReadTimeout() override

Gets the read operation timeout.

Returns:

timeout in FreeRTOS ticks

virtual esp_err_t SetReadTimeout(TickType_t timeout) override

Sets the read operation timeout.

Parameters:

timeout – timeout in FreeRTOS ticks

Returns:

error code

NetworkEndpoint GetLocalEndpoint()

Gets the local endpoint of the stream.

Returns:

local endpoint

NetworkEndpoint GetRemoteEndpoint()

Gets the remote endpoint of the stream.

Returns:

remote endpoint

esp_err_t SetKeepAliveIdleTime(int seconds)

Sets the idle time before the keep-alive packets are sent.

Parameters:

seconds – time in seconds

Returns:

error code

esp_err_t SetKeepAliveInterval(int seconds)

Sets the keep-alive packet interval.

Parameters:

seconds – interval in seconds

Returns:

error code

esp_err_t SetKeepAliveCount(int count)

Sets the number of the keep-alive packets.

Parameters:

count – number of packets

Returns:

error code

virtual esp_err_t Read(void *dest, size_t size) = 0

Reads the data from the stream.

Parameters:
  • dest – destination (can be NULL)

  • size – number of bytes to read

Returns:

error code

esp_err_t Read(Buffer &dest, size_t offset, size_t size)

Reads the data from the stream to the buffer.

Parameters:
  • dest – destination buffer

  • offset – destination buffer offset

  • size – number of bytes to read

Returns:

error code

virtual esp_err_t Write(const void *src, size_t size) = 0

Writes the data to the stream.

Parameters:
  • src – source

  • size – number of bytes to write

Returns:

error code

esp_err_t Write(Buffer &src, size_t offset, size_t size)

Writes the data from the buffer to the stream.

Parameters:
  • src – source buffer

  • offset – source buffer offset

  • size – number of bytes to write

Returns:

error code

esp_err_t Write(const std::string &src)

Writes the string to the stream.

Parameters:

src – source string

Returns:

error code

esp_err_t ReadUntil(void *dest, size_t maxSize, char termChar, size_t *size)

Reads the data from the stream up to the specified termination character.

Parameters:
  • dest – destination (can be NULL)

  • maxSize – maximum number of bytes to read

  • termChar – termination character

  • size – number of bytes read

Returns:

error code

esp_err_t ReadUntil(Buffer &dest, size_t offset, char termChar, size_t *size)

Reads the data from the stream to the buffer up to the specified termination character.

Parameters:
  • dest – destination buffer

  • offset – destination buffer offset

  • termChar – termination character

  • size – number of bytes read

Returns:

error code

esp_err_t ReadUntil(char termChar)

Reads the data from the stream up to the specified termination character.

Parameters:

termChar – termination character

Returns:

error code

esp_err_t FlushReadBuffer(TickType_t time = 0)

Discards the data in the read buffer until no data is received for the specified period of time.

Parameters:

time – time

Returns:

error code

Public Static Attributes

static const TickType_t defaultReadTimeout = 300 / portTICK_PERIOD_MS

Default read operation timeout in FreeRTOS ticks.