Qpid Proton C API  0.21.0
Listener

Unsettled API - A listener for incoming connections. More...

Typedefs

typedef struct pn_listener_t pn_listener_t
 A listener for incoming connections.
 

Functions

PNP_EXTERN pn_listener_tpn_listener (void)
 Create a listener to pass to pn_proactor_listen() More...
 
PNP_EXTERN void pn_listener_free (pn_listener_t *l)
 Free a listener. More...
 
PNP_EXTERN void pn_listener_accept2 (pn_listener_t *listener, pn_connection_t *connection, pn_transport_t *transport)
 Accept an incoming connection request using transport and connection, which can be configured before the call. More...
 
PNP_EXTERN void pn_listener_accept (pn_listener_t *listener, pn_connection_t *connection)
 
PNP_EXTERN pn_condition_tpn_listener_condition (pn_listener_t *l)
 Get the error condition for a listener.
 
PNP_EXTERN pn_record_t * pn_listener_attachments (pn_listener_t *listener)
 Get the attachments that are associated with a listener object.
 
PNP_EXTERN void pn_listener_close (pn_listener_t *l)
 Close the listener. More...
 
PNP_EXTERN pn_proactor_tpn_listener_proactor (pn_listener_t *c)
 The proactor associated with a listener.
 
PNP_EXTERN pn_listener_tpn_event_listener (pn_event_t *event)
 Return the listener associated with an event. More...
 

Detailed Description

Unsettled API - A listener for incoming connections.

Note
Thread safety: Listener has the same thread-safety rules as a Core object. Calls to a single listener must be serialized with the exception of pn_listener_close().

Function Documentation

◆ pn_listener()

PNP_EXTERN pn_listener_t* pn_listener ( void  )

Create a listener to pass to pn_proactor_listen()

You can use pn_listener_attachments() to set application data that can be accessed when accepting connections.

◆ pn_listener_free()

PNP_EXTERN void pn_listener_free ( pn_listener_t l)

Free a listener.

You don't need to call this unless you create a listener with pn_listen() but never pass it to pn_proactor_listen()

◆ pn_listener_accept2()

PNP_EXTERN void pn_listener_accept2 ( pn_listener_t listener,
pn_connection_t connection,
pn_transport_t transport 
)

Accept an incoming connection request using transport and connection, which can be configured before the call.

Call after a PN_LISTENER_ACCEPT event.

Errors are returned as PN_TRANSPORT_CLOSED events by pn_proactor_wait().

Parameters
[in]listenerthe listener
[in]connectionIf NULL a new connection is created. Memory management is the same as for pn_proactor_connect2()
[in]transportIf NULL a new transport is created. Memory management is the same as for pn_proactor_connect2()

◆ pn_listener_accept()

PNP_EXTERN void pn_listener_accept ( pn_listener_t listener,
pn_connection_t connection 
)

◆ pn_listener_close()

PNP_EXTERN void pn_listener_close ( pn_listener_t l)

Close the listener.

The PN_LISTENER_CLOSE event is generated when the listener has stopped listening.

Note
Thread safe. Must not be called after the PN_LISTENER_CLOSE event has been handled as the listener may be freed .

◆ pn_event_listener()

PNP_EXTERN pn_listener_t* pn_event_listener ( pn_event_t event)

Return the listener associated with an event.

Returns
NULL if the event is not associated with a listener.