00001 #ifndef PROTON_PROACTOR_H
00002 #define PROTON_PROACTOR_H 1
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <proton/condition.h>
00024 #include <proton/event.h>
00025 #include <proton/import_export.h>
00026 #include <proton/types.h>
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031
00074 #define PN_MAX_ADDR 1060
00075
00086 PNP_EXTERN int pn_proactor_addr(char *addr, size_t size, const char *host, const char *port);
00087
00091 PNP_EXTERN pn_proactor_t *pn_proactor(void);
00092
00096 PNP_EXTERN void pn_proactor_free(pn_proactor_t *proactor);
00097
00119 PNP_EXTERN void pn_proactor_connect(pn_proactor_t *proactor, pn_connection_t *connection, const char *addr);
00120
00148 PNP_EXTERN void pn_proactor_listen(pn_proactor_t *proactor, pn_listener_t *listener, const char *addr, int backlog);
00149
00171 PNP_EXTERN void pn_proactor_disconnect(pn_proactor_t *proactor, pn_condition_t *condition);
00172
00189 PNP_EXTERN pn_event_batch_t *pn_proactor_wait(pn_proactor_t *proactor);
00190
00197 PNP_EXTERN pn_event_batch_t *pn_proactor_get(pn_proactor_t *proactor);
00198
00207 PNP_EXTERN void pn_proactor_done(pn_proactor_t *proactor, pn_event_batch_t *events);
00208
00220 PNP_EXTERN void pn_proactor_interrupt(pn_proactor_t *proactor);
00221
00233 PNP_EXTERN void pn_proactor_set_timeout(pn_proactor_t *proactor, pn_millis_t timeout);
00234
00241 PNP_EXTERN void pn_proactor_cancel_timeout(pn_proactor_t *proactor);
00242
00259 PNP_EXTERN void pn_proactor_release_connection(pn_connection_t *connection);
00260
00273 PNP_EXTERN void pn_connection_wake(pn_connection_t *connection);
00274
00282 PNP_EXTERN pn_proactor_t *pn_connection_proactor(pn_connection_t *connection);
00283
00291 PNP_EXTERN pn_proactor_t *pn_event_proactor(pn_event_t *event);
00292
00305 PNP_EXTERN pn_millis_t pn_proactor_now(void);
00306
00362 #ifdef __cplusplus
00363 }
00364 #endif
00365
00366 #endif