Timeout manager

Timeout manager allows application to call specific function at desired time. It is used in middleware (and can be used by application too) to poll active connections.

Note

Callback function is called from processing thread. It is not allowed to call any blocking API function from it.

When application registers timeout, it needs to set timeout, callback function and optional user argument. When timeout elapses, ESP middleware will call timeout callback.

This feature can be considered as single-shot software timer.

group LWESP_TIMEOUT

Timeout manager.

Typedefs

typedef void (*lwesp_timeout_fn)(void *arg)

Timeout callback function prototype.

Param arg

[in] Custom user argument

Functions

lwespr_t lwesp_timeout_add(uint32_t time, lwesp_timeout_fn fn, void *arg)

Add new timeout to processing list.

Parameters
  • time[in] Time in units of milliseconds for timeout execution

  • fn[in] Callback function to call when timeout expires

  • arg[in] Pointer to user specific argument to call when timeout callback function is executed

Returns

lwespOK on success, member of lwespr_t enumeration otherwise

lwespr_t lwesp_timeout_remove(lwesp_timeout_fn fn)

Remove callback from timeout list.

Parameters

fn[in] Callback function to identify timeout to remove

Returns

lwespOK on success, member of lwespr_t enumeration otherwise

struct lwesp_timeout_t
#include <lwesp_types.h>

Timeout structure.

Public Members

struct lwesp_timeout *next

Pointer to next timeout entry

uint32_t time

Time difference from previous entry

void *arg

Argument to pass to callback function

lwesp_timeout_fn fn

Callback function for timeout