00001 #ifndef PROTON_MESSENGER_H
00002 #define PROTON_MESSENGER_H 1
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <proton/import_export.h>
00026 #include <proton/message.h>
00027 #include <proton/selectable.h>
00028 #include <proton/link.h>
00029 #include <proton/transport.h>
00030 #include <proton/ssl.h>
00031
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035
00154 typedef struct pn_messenger_t pn_messenger_t;
00155
00159 typedef struct pn_subscription_t pn_subscription_t;
00160
00165 typedef int64_t pn_tracker_t;
00166
00171 typedef enum {
00172 PN_STATUS_UNKNOWN = 0,
00173 PN_STATUS_PENDING = 1,
00176 PN_STATUS_ACCEPTED = 2,
00177 PN_STATUS_REJECTED = 3,
00178 PN_STATUS_RELEASED = 4,
00179 PN_STATUS_MODIFIED = 5,
00180 PN_STATUS_ABORTED = 6,
00181 PN_STATUS_SETTLED = 7
00182 } pn_status_t;
00183
00193 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00194 PNX_EXTERN pn_messenger_t *pn_messenger(const char *name);
00195
00202 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00203 PNX_EXTERN const char *pn_messenger_name(pn_messenger_t *messenger);
00204
00214 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00215 PNX_EXTERN int pn_messenger_set_certificate(pn_messenger_t *messenger, const char *certificate);
00216
00224 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00225 PNX_EXTERN const char *pn_messenger_get_certificate(pn_messenger_t *messenger);
00226
00235 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00236 PNX_EXTERN int pn_messenger_set_private_key(pn_messenger_t *messenger, const char *private_key);
00237
00244 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00245 PNX_EXTERN const char *pn_messenger_get_private_key(pn_messenger_t *messenger);
00246
00255 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00256 PNX_EXTERN int pn_messenger_set_password(pn_messenger_t *messenger, const char *password);
00257
00264 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00265 PNX_EXTERN const char *pn_messenger_get_password(pn_messenger_t *messenger);
00266
00278 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00279 PNX_EXTERN int pn_messenger_set_trusted_certificates(pn_messenger_t *messenger, const char *cert_db);
00280
00287 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00288 PNX_EXTERN const char *pn_messenger_get_trusted_certificates(pn_messenger_t *messenger);
00289
00302 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00303 PNX_EXTERN int pn_messenger_set_timeout(pn_messenger_t *messenger, int timeout);
00304
00313 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00314 PNX_EXTERN int pn_messenger_get_timeout(pn_messenger_t *messenger);
00315
00322 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00323 PNX_EXTERN bool pn_messenger_is_blocking(pn_messenger_t *messenger);
00324
00333 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00334 PNX_EXTERN int pn_messenger_set_blocking(pn_messenger_t *messenger, bool blocking);
00335
00348 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00349 PNX_EXTERN bool pn_messenger_is_passive(pn_messenger_t *messenger);
00350
00361 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00362 PNX_EXTERN int pn_messenger_set_passive(pn_messenger_t *messenger, bool passive);
00363
00369 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00370 PNX_EXTERN void pn_messenger_free(pn_messenger_t *messenger);
00371
00385 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00386 PNX_EXTERN int pn_messenger_errno(pn_messenger_t *messenger);
00387
00399 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00400 PNX_EXTERN pn_error_t *pn_messenger_error(pn_messenger_t *messenger);
00401
00417 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00418 PNX_EXTERN int pn_messenger_get_outgoing_window(pn_messenger_t *messenger);
00419
00430 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00431 PNX_EXTERN int pn_messenger_set_outgoing_window(pn_messenger_t *messenger, int window);
00432
00451 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00452 PNX_EXTERN int pn_messenger_get_incoming_window(pn_messenger_t *messenger);
00453
00464 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00465 PNX_EXTERN int pn_messenger_set_incoming_window(pn_messenger_t *messenger,
00466 int window);
00467
00476 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00477 PNX_EXTERN int pn_messenger_start(pn_messenger_t *messenger);
00478
00493 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00494 PNX_EXTERN int pn_messenger_stop(pn_messenger_t *messenger);
00495
00503 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00504 PNX_EXTERN bool pn_messenger_stopped(pn_messenger_t *messenger);
00505
00513 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00514 PNX_EXTERN pn_subscription_t *pn_messenger_subscribe(pn_messenger_t *messenger, const char *source);
00515
00526 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00527 PNX_EXTERN pn_subscription_t *
00528 pn_messenger_subscribe_ttl(pn_messenger_t *messenger, const char *source,
00529 pn_seconds_t timeout);
00530
00540 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00541 PNX_EXTERN pn_link_t *pn_messenger_get_link(pn_messenger_t *messenger,
00542 const char *address, bool sender);
00543
00552 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00553 PNX_EXTERN void *pn_subscription_get_context(pn_subscription_t *sub);
00554
00561 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00562 PNX_EXTERN void pn_subscription_set_context(pn_subscription_t *sub, void *context);
00563
00570 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00571 PNX_EXTERN const char *pn_subscription_address(pn_subscription_t *sub);
00572
00583 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00584 PNX_EXTERN int pn_messenger_put(pn_messenger_t *messenger, pn_message_t *msg);
00585
00597 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00598 PNX_EXTERN pn_status_t pn_messenger_status(pn_messenger_t *messenger, pn_tracker_t tracker);
00599
00611 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00612 PNX_EXTERN pn_delivery_t *pn_messenger_delivery(pn_messenger_t *messenger,
00613 pn_tracker_t tracker);
00614
00627 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00628 PNX_EXTERN bool pn_messenger_buffered(pn_messenger_t *messenger, pn_tracker_t tracker);
00629
00642 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00643 PNX_EXTERN int pn_messenger_settle(pn_messenger_t *messenger, pn_tracker_t tracker, int flags);
00644
00658 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00659 PNX_EXTERN pn_tracker_t pn_messenger_outgoing_tracker(pn_messenger_t *messenger);
00660
00671 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00672 PNX_EXTERN int pn_messenger_work(pn_messenger_t *messenger, int timeout);
00673
00685 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00686 PNX_EXTERN int pn_messenger_interrupt(pn_messenger_t *messenger);
00687
00720 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00721 PNX_EXTERN int pn_messenger_send(pn_messenger_t *messenger, int n);
00722
00747 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00748 PNX_EXTERN int pn_messenger_recv(pn_messenger_t *messenger, int limit);
00749
00760 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00761 PNX_EXTERN int pn_messenger_receiving(pn_messenger_t *messenger);
00762
00777 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00778 PNX_EXTERN int pn_messenger_get(pn_messenger_t *messenger, pn_message_t *message);
00779
00793 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00794 PNX_EXTERN pn_tracker_t pn_messenger_incoming_tracker(pn_messenger_t *messenger);
00795
00805 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00806 PNX_EXTERN pn_subscription_t *pn_messenger_incoming_subscription(pn_messenger_t *messenger);
00807
00811 #define PN_CUMULATIVE (0x1)
00812
00834 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00835 PNX_EXTERN int pn_messenger_accept(pn_messenger_t *messenger, pn_tracker_t tracker, int flags);
00836
00858 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00859 PNX_EXTERN int pn_messenger_reject(pn_messenger_t *messenger, pn_tracker_t tracker, int flags);
00860
00868 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00869 PNX_EXTERN pn_link_t *pn_messenger_tracker_link(pn_messenger_t *messenger,
00870 pn_tracker_t tracker);
00871
00879 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00880 PNX_EXTERN int pn_messenger_outgoing(pn_messenger_t *messenger);
00881
00888 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00889 PNX_EXTERN int pn_messenger_incoming(pn_messenger_t *messenger);
00890
00953 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00954 PNX_EXTERN int pn_messenger_route(pn_messenger_t *messenger, const char *pattern,
00955 const char *address);
00956
00979 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
00980 PNX_EXTERN int pn_messenger_rewrite(pn_messenger_t *messenger, const char *pattern,
00981 const char *address);
00982
01009 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
01010 PNX_EXTERN pn_selectable_t *pn_messenger_selectable(pn_messenger_t *messenger);
01011
01018 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
01019 PNX_EXTERN pn_timestamp_t pn_messenger_deadline(pn_messenger_t *messenger);
01020
01021 #define PN_FLAGS_CHECK_ROUTES \
01022 (0x1)
01026 #define PN_FLAGS_ALLOW_INSECURE_MECHS \
01027 (0x2)
01039 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
01040 PNX_EXTERN int pn_messenger_set_flags(pn_messenger_t *messenger,
01041 const int flags);
01042
01049 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
01050 PNX_EXTERN int pn_messenger_get_flags(pn_messenger_t *messenger);
01051
01058 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
01059 PNX_EXTERN int pn_messenger_set_snd_settle_mode(pn_messenger_t *messenger,
01060 const pn_snd_settle_mode_t mode);
01061
01068 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
01069 PNX_EXTERN int pn_messenger_set_rcv_settle_mode(pn_messenger_t *messenger,
01070 const pn_rcv_settle_mode_t mode);
01071
01078 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
01079 PNX_EXTERN void pn_messenger_set_tracer(pn_messenger_t *messenger,
01080 pn_tracer_t tracer);
01081
01089 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
01090 PNX_EXTERN pn_millis_t
01091 pn_messenger_get_remote_idle_timeout(pn_messenger_t *messenger,
01092 const char *address);
01093
01103 PN_DEPRECATED("Use the Proactor API or Qpid Proton C++")
01104 PNX_EXTERN int
01105 pn_messenger_set_ssl_peer_authentication_mode(pn_messenger_t *messenger,
01106 const pn_ssl_verify_mode_t mode);
01107
01112 #ifdef __cplusplus
01113 }
01114 #endif
01115
01116 #endif