libcoap 4.3.1rc1
Event Handling

API for event delivery from lower-layer library functions. More...

+ Collaboration diagram for Event Handling:

Typedefs

typedef enum coap_event_t coap_event_t
 Scalar type to represent different events, e.g. More...
 
typedef int(* coap_event_handler_t) (coap_session_t *session, const coap_event_t event)
 Type for event handler functions that can be registered with a CoAP context using the unction coap_set_event_handler(). More...
 

Enumerations

enum  coap_event_t {
  COAP_EVENT_DTLS_CLOSED = 0x0000 , COAP_EVENT_DTLS_CONNECTED = 0x01DE , COAP_EVENT_DTLS_RENEGOTIATE = 0x01DF , COAP_EVENT_DTLS_ERROR = 0x0200 ,
  COAP_EVENT_TCP_CONNECTED = 0x1001 , COAP_EVENT_TCP_CLOSED = 0x1002 , COAP_EVENT_TCP_FAILED = 0x1003 , COAP_EVENT_SESSION_CONNECTED = 0x2001 ,
  COAP_EVENT_SESSION_CLOSED = 0x2002 , COAP_EVENT_SESSION_FAILED = 0x2003 , COAP_EVENT_PARTIAL_BLOCK = 0x3001 , COAP_EVENT_SERVER_SESSION_NEW = 0x4001 ,
  COAP_EVENT_SERVER_SESSION_DEL = 0x4002
}
 Scalar type to represent different events, e.g. More...
 

Functions

void coap_register_event_handler (coap_context_t *context, coap_event_handler_t hnd)
 Registers the function hnd as callback for events from the given CoAP context context. More...
 

Detailed Description

API for event delivery from lower-layer library functions.

Typedef Documentation

◆ coap_event_handler_t

typedef int(* coap_event_handler_t) (coap_session_t *session, const coap_event_t event)

Type for event handler functions that can be registered with a CoAP context using the unction coap_set_event_handler().

When called by the library, the first argument will be the current coap_session_t object which is associated with the original CoAP context. The second parameter is the event type.

Definition at line 95 of file coap_event.h.

◆ coap_event_t

typedef enum coap_event_t coap_event_t

Scalar type to represent different events, e.g.

DTLS events or retransmission timeouts.

Enumeration Type Documentation

◆ coap_event_t

Scalar type to represent different events, e.g.

DTLS events or retransmission timeouts.

Enumerator
COAP_EVENT_DTLS_CLOSED 

(D)TLS events for COAP_PROTO_DTLS and COAP_PROTO_TLS

COAP_EVENT_DTLS_CONNECTED 
COAP_EVENT_DTLS_RENEGOTIATE 
COAP_EVENT_DTLS_ERROR 
COAP_EVENT_TCP_CONNECTED 

TCP events for COAP_PROTO_TCP and COAP_PROTO_TLS.

COAP_EVENT_TCP_CLOSED 
COAP_EVENT_TCP_FAILED 
COAP_EVENT_SESSION_CONNECTED 

CSM exchange events for reliable protocols only.

COAP_EVENT_SESSION_CLOSED 
COAP_EVENT_SESSION_FAILED 
COAP_EVENT_PARTIAL_BLOCK 

(Q-)Block receive errors

COAP_EVENT_SERVER_SESSION_NEW 

Called in the CoAP IO loop if a new server-side session is created due to an incoming connection.

Note that the session might not be a fully established connection yet, it might also refer to, e.g., a DTLS session in a handshake stage.

COAP_EVENT_SERVER_SESSION_DEL 

Called in the CoAP IO loop if a server session is deleted (e.g., due to inactivity or because the maximum number of idle sessions was exceeded).

The session will still contain valid data when the event handler is called.

Definition at line 34 of file coap_event.h.

Function Documentation

◆ coap_register_event_handler()

void coap_register_event_handler ( coap_context_t context,
coap_event_handler_t  hnd 
)

Registers the function hnd as callback for events from the given CoAP context context.

Any event handler that has previously been registered with context will be overwritten by this operation.

Parameters
contextThe CoAP context to register the event handler with.
hndThe event handler to be registered. NULL if to be de-registered.

Definition at line 24 of file coap_event.c.