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
00122 PNP_EXTERN void pn_proactor_connect2(pn_proactor_t *proactor, pn_connection_t *connection, pn_transport_t *transport, const char *addr);
00123
00127 PNP_EXTERN void pn_proactor_connect(pn_proactor_t *proactor, pn_connection_t *connection, const char *addr);
00128
00156 PNP_EXTERN void pn_proactor_listen(pn_proactor_t *proactor, pn_listener_t *listener, const char *addr, int backlog);
00157
00180 PNP_EXTERN void pn_proactor_disconnect(pn_proactor_t *proactor, pn_condition_t *condition);
00181
00198 PNP_EXTERN pn_event_batch_t *pn_proactor_wait(pn_proactor_t *proactor);
00199
00206 PNP_EXTERN pn_event_batch_t *pn_proactor_get(pn_proactor_t *proactor);
00207
00216 PNP_EXTERN void pn_proactor_done(pn_proactor_t *proactor, pn_event_batch_t *events);
00217
00229 PNP_EXTERN void pn_proactor_interrupt(pn_proactor_t *proactor);
00230
00241 PNP_EXTERN void pn_proactor_set_timeout(pn_proactor_t *proactor, pn_millis_t timeout);
00242
00249 PNP_EXTERN void pn_proactor_cancel_timeout(pn_proactor_t *proactor);
00250
00267 PNP_EXTERN void pn_proactor_release_connection(pn_connection_t *connection);
00268
00281 PNP_EXTERN void pn_connection_wake(pn_connection_t *connection);
00282
00290 PNP_EXTERN pn_proactor_t *pn_connection_proactor(pn_connection_t *connection);
00291
00299 PNP_EXTERN pn_proactor_t *pn_event_proactor(pn_event_t *event);
00300
00315 PNP_EXTERN pn_millis_t pn_proactor_now(void);
00316
00329 PNP_EXTERN int64_t pn_proactor_now_64(void);
00330
00386 #ifdef __cplusplus
00387 }
00388 #endif
00389
00390 #endif