proton  0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Typedefs | Functions
Reactor

Typedefs

typedef struct pn_reactor_t pn_reactor_t
 
typedef struct pn_acceptor_t pn_acceptor_t
 
typedef struct pn_timer_t pn_timer_t
 
typedef struct pn_task_t pn_task_t
 
typedef struct pn_handler_t pn_handler_t
 An event handler. More...
 

Functions

PN_EXTERN pn_handler_tpn_handler (void(*dispatch)(pn_handler_t *, pn_event_t *, pn_event_type_t))
 
PN_EXTERN pn_handler_tpn_handler_new (void(*dispatch)(pn_handler_t *, pn_event_t *, pn_event_type_t), size_t size, void(*finalize)(pn_handler_t *))
 
PN_EXTERN void pn_handler_free (pn_handler_t *handler)
 
PN_EXTERN void * pn_handler_mem (pn_handler_t *handler)
 
PN_EXTERN void pn_handler_add (pn_handler_t *handler, pn_handler_t *child)
 
PN_EXTERN void pn_handler_clear (pn_handler_t *handler)
 
PN_EXTERN void pn_handler_dispatch (pn_handler_t *handler, pn_event_t *event, pn_event_type_t type)
 
PN_EXTERN pn_reactor_tpn_reactor (void)
 
PN_EXTERN pn_record_tpn_reactor_attachments (pn_reactor_t *reactor)
 
PN_EXTERN pn_millis_t pn_reactor_get_timeout (pn_reactor_t *reactor)
 
PN_EXTERN void pn_reactor_set_timeout (pn_reactor_t *reactor, pn_millis_t timeout)
 
PN_EXTERN pn_timestamp_t pn_reactor_mark (pn_reactor_t *reactor)
 
PN_EXTERN pn_timestamp_t pn_reactor_now (pn_reactor_t *reactor)
 
PN_EXTERN void pn_reactor_yield (pn_reactor_t *reactor)
 
PN_EXTERN void pn_reactor_free (pn_reactor_t *reactor)
 
PN_EXTERN pn_collector_tpn_reactor_collector (pn_reactor_t *reactor)
 
PN_EXTERN pn_handler_tpn_reactor_get_global_handler (pn_reactor_t *reactor)
 
PN_EXTERN void pn_reactor_set_global_handler (pn_reactor_t *reactor, pn_handler_t *handler)
 
PN_EXTERN pn_handler_tpn_reactor_get_handler (pn_reactor_t *reactor)
 
PN_EXTERN void pn_reactor_set_handler (pn_reactor_t *reactor, pn_handler_t *handler)
 
PN_EXTERN pn_io_tpn_reactor_io (pn_reactor_t *reactor)
 
PN_EXTERN pn_list_tpn_reactor_children (pn_reactor_t *reactor)
 
PN_EXTERN pn_selectable_tpn_reactor_selectable (pn_reactor_t *reactor)
 
PN_EXTERN void pn_reactor_update (pn_reactor_t *reactor, pn_selectable_t *selectable)
 
PN_EXTERN pn_acceptor_tpn_reactor_acceptor (pn_reactor_t *reactor, const char *host, const char *port, pn_handler_t *handler)
 
PN_EXTERN pn_connection_tpn_reactor_connection_to_host (pn_reactor_t *reactor, const char *host, const char *port, pn_handler_t *handler)
 Create an outgoing connection that will be managed by the reactor. More...
 
PN_EXTERN pn_connection_tpn_reactor_connection (pn_reactor_t *reactor, pn_handler_t *handler)
 Create an outgoing connection that will be managed by the reactor. More...
 
PN_EXTERN void pn_reactor_set_connection_host (pn_reactor_t *reactor, pn_connection_t *connection, const char *host, const char *port)
 Change the host address used by an outgoing reactor connection. More...
 
PN_EXTERN const char * pn_reactor_get_connection_address (pn_reactor_t *reactor, pn_connection_t *connection)
 Retrieve the peer host address for a reactor connection. More...
 
PN_EXTERN int pn_reactor_wakeup (pn_reactor_t *reactor)
 
PN_EXTERN void pn_reactor_start (pn_reactor_t *reactor)
 
PN_EXTERN bool pn_reactor_quiesced (pn_reactor_t *reactor)
 
PN_EXTERN bool pn_reactor_process (pn_reactor_t *reactor)
 
PN_EXTERN void pn_reactor_stop (pn_reactor_t *reactor)
 
PN_EXTERN void pn_reactor_run (pn_reactor_t *reactor)
 
PN_EXTERN pn_task_tpn_reactor_schedule (pn_reactor_t *reactor, int delay, pn_handler_t *handler)
 
PN_EXTERN void pn_acceptor_set_ssl_domain (pn_acceptor_t *acceptor, pn_ssl_domain_t *domain)
 
PN_EXTERN void pn_acceptor_close (pn_acceptor_t *acceptor)
 
PN_EXTERN pn_acceptor_tpn_connection_acceptor (pn_connection_t *connection)
 
PN_EXTERN pn_timer_tpn_timer (pn_collector_t *collector)
 
PN_EXTERN pn_timestamp_t pn_timer_deadline (pn_timer_t *timer)
 
PN_EXTERN void pn_timer_tick (pn_timer_t *timer, pn_timestamp_t now)
 
PN_EXTERN pn_task_tpn_timer_schedule (pn_timer_t *timer, pn_timestamp_t deadline)
 
PN_EXTERN int pn_timer_tasks (pn_timer_t *timer)
 
PN_EXTERN pn_record_tpn_task_attachments (pn_task_t *task)
 
PN_EXTERN void pn_task_cancel (pn_task_t *task)
 
PN_EXTERN pn_reactor_tpn_class_reactor (const pn_class_t *clazz, void *object)
 
PN_EXTERN pn_reactor_tpn_object_reactor (void *object)
 
PN_EXTERN pn_reactor_tpn_event_reactor (pn_event_t *event)
 
PN_EXTERN pn_handler_tpn_record_get_handler (pn_record_t *record)
 
PN_EXTERN void pn_record_set_handler (pn_record_t *record, pn_handler_t *handler)
 

Detailed Description

Typedef Documentation

typedef struct pn_acceptor_t pn_acceptor_t
typedef struct pn_handler_t pn_handler_t

An event handler.

A pn_handler_t is target of pn_event_t dispatched by the pn_reactor_t

typedef struct pn_reactor_t pn_reactor_t
typedef struct pn_task_t pn_task_t
typedef struct pn_timer_t pn_timer_t

Function Documentation

PN_EXTERN void pn_acceptor_close ( pn_acceptor_t acceptor)
PN_EXTERN void pn_acceptor_set_ssl_domain ( pn_acceptor_t acceptor,
pn_ssl_domain_t domain 
)
PN_EXTERN pn_reactor_t* pn_class_reactor ( const pn_class_t clazz,
void *  object 
)
PN_EXTERN pn_acceptor_t* pn_connection_acceptor ( pn_connection_t connection)
PN_EXTERN pn_reactor_t* pn_event_reactor ( pn_event_t event)
PN_EXTERN pn_handler_t* pn_handler ( void(*)(pn_handler_t *, pn_event_t *, pn_event_type_t dispatch)
PN_EXTERN void pn_handler_add ( pn_handler_t handler,
pn_handler_t child 
)
PN_EXTERN void pn_handler_clear ( pn_handler_t handler)
PN_EXTERN void pn_handler_dispatch ( pn_handler_t handler,
pn_event_t event,
pn_event_type_t  type 
)
PN_EXTERN void pn_handler_free ( pn_handler_t handler)
PN_EXTERN void* pn_handler_mem ( pn_handler_t handler)
PN_EXTERN pn_handler_t* pn_handler_new ( void(*)(pn_handler_t *, pn_event_t *, pn_event_type_t dispatch,
size_t  size,
void(*)(pn_handler_t *)  finalize 
)
PN_EXTERN pn_reactor_t* pn_object_reactor ( void *  object)
PN_EXTERN pn_reactor_t* pn_reactor ( void  )
PN_EXTERN pn_acceptor_t* pn_reactor_acceptor ( pn_reactor_t reactor,
const char *  host,
const char *  port,
pn_handler_t handler 
)
PN_EXTERN pn_record_t* pn_reactor_attachments ( pn_reactor_t reactor)
PN_EXTERN pn_list_t* pn_reactor_children ( pn_reactor_t reactor)
PN_EXTERN pn_collector_t* pn_reactor_collector ( pn_reactor_t reactor)
PN_EXTERN pn_connection_t* pn_reactor_connection ( pn_reactor_t reactor,
pn_handler_t handler 
)

Create an outgoing connection that will be managed by the reactor.

The host address for the connection must be set via pn_reactor_set_connection_host() prior to opening the connection. Typically this can be done by the handler when processing the PN_CONNECTION_INIT event.

Parameters
[in]reactorthe reactor that will own the connection.
[in]handlerthe handler that will process all events generated by this connection.
Returns
a connection object
Deprecated:
Use pn_reactor_connection_to_host() instead.
PN_EXTERN pn_connection_t* pn_reactor_connection_to_host ( pn_reactor_t reactor,
const char *  host,
const char *  port,
pn_handler_t handler 
)

Create an outgoing connection that will be managed by the reactor.

The reator's pn_iohandler will create a socket connection to the host once the connection is opened.

Parameters
[in]reactorthe reactor that will own the connection.
[in]hostthe address of the remote host. e.g. "localhost"
[in]portthe port to connect to. e.g. "5672"
[in]handlerthe handler that will process all events generated by this connection.
Returns
a connection object
PN_EXTERN void pn_reactor_free ( pn_reactor_t reactor)
PN_EXTERN const char* pn_reactor_get_connection_address ( pn_reactor_t reactor,
pn_connection_t connection 
)

Retrieve the peer host address for a reactor connection.

This may be used to retrieve the host address used by the reactor to establish the outgoing socket connection. In the case of an accepted connection the returned value is the address of the remote.

Note
Note that the returned address may be in numeric IP format.

The pointer returned by this operation is valid until either the address is changed via pn_reactor_set_connection_host() or the connection object is freed.

Parameters
[in]reactorthe reactor that owns the connection.
[in]connectionthe reactor connection
Returns
a C string containing the address in URL format or NULL if no address available. pn_url_parse() may be used to create a Proton pn_url_t instance from the returned value.
PN_EXTERN pn_handler_t* pn_reactor_get_global_handler ( pn_reactor_t reactor)
PN_EXTERN pn_handler_t* pn_reactor_get_handler ( pn_reactor_t reactor)
PN_EXTERN pn_millis_t pn_reactor_get_timeout ( pn_reactor_t reactor)
PN_EXTERN pn_io_t* pn_reactor_io ( pn_reactor_t reactor)
PN_EXTERN pn_timestamp_t pn_reactor_mark ( pn_reactor_t reactor)
PN_EXTERN pn_timestamp_t pn_reactor_now ( pn_reactor_t reactor)
PN_EXTERN bool pn_reactor_process ( pn_reactor_t reactor)
PN_EXTERN bool pn_reactor_quiesced ( pn_reactor_t reactor)
PN_EXTERN void pn_reactor_run ( pn_reactor_t reactor)
PN_EXTERN pn_task_t* pn_reactor_schedule ( pn_reactor_t reactor,
int  delay,
pn_handler_t handler 
)
PN_EXTERN pn_selectable_t* pn_reactor_selectable ( pn_reactor_t reactor)
PN_EXTERN void pn_reactor_set_connection_host ( pn_reactor_t reactor,
pn_connection_t connection,
const char *  host,
const char *  port 
)

Change the host address used by an outgoing reactor connection.

The address is used by the reactor's iohandler to create an outgoing socket connection. This must be set prior to (re)opening the connection.

Parameters
[in]reactorthe reactor that owns the connection.
[in]connectionthe connection created by the reactor.
[in]hostthe network address or DNS name of the host to connect to.
[in]portthe network port to use. Optional - default is "5672"
PN_EXTERN void pn_reactor_set_global_handler ( pn_reactor_t reactor,
pn_handler_t handler 
)
PN_EXTERN void pn_reactor_set_handler ( pn_reactor_t reactor,
pn_handler_t handler 
)
PN_EXTERN void pn_reactor_set_timeout ( pn_reactor_t reactor,
pn_millis_t  timeout 
)
PN_EXTERN void pn_reactor_start ( pn_reactor_t reactor)
PN_EXTERN void pn_reactor_stop ( pn_reactor_t reactor)
PN_EXTERN void pn_reactor_update ( pn_reactor_t reactor,
pn_selectable_t selectable 
)
PN_EXTERN int pn_reactor_wakeup ( pn_reactor_t reactor)
PN_EXTERN void pn_reactor_yield ( pn_reactor_t reactor)
PN_EXTERN pn_handler_t* pn_record_get_handler ( pn_record_t record)
PN_EXTERN void pn_record_set_handler ( pn_record_t record,
pn_handler_t handler 
)
PN_EXTERN pn_record_t* pn_task_attachments ( pn_task_t task)
PN_EXTERN void pn_task_cancel ( pn_task_t task)
PN_EXTERN pn_timer_t* pn_timer ( pn_collector_t collector)
PN_EXTERN pn_timestamp_t pn_timer_deadline ( pn_timer_t timer)
PN_EXTERN pn_task_t* pn_timer_schedule ( pn_timer_t timer,
pn_timestamp_t  deadline 
)
PN_EXTERN int pn_timer_tasks ( pn_timer_t timer)
PN_EXTERN void pn_timer_tick ( pn_timer_t timer,
pn_timestamp_t  now 
)