proton
0
|
The messenger API provides a high level interface for sending and receiving AMQP messages. More...
Go to the source code of this file.
Macros | |
#define | PN_CUMULATIVE (0x1) |
Typedefs | |
typedef struct pn_messenger_t | pn_messenger_t |
Messenger. | |
typedef struct pn_subscription_t | pn_subscription_t |
Subscription. | |
typedef int64_t | pn_tracker_t |
Enumerations | |
enum | pn_accept_mode_t { PN_ACCEPT_MODE_AUTO, PN_ACCEPT_MODE_MANUAL } |
enum | pn_status_t { PN_STATUS_UNKNOWN = 0, PN_STATUS_PENDING = 1, PN_STATUS_ACCEPTED = 2, PN_STATUS_REJECTED = 3 } |
Functions | |
PN_EXTERN pn_messenger_t * | pn_messenger (const char *name) |
Construct a new Messenger with the given name. | |
PN_EXTERN const char * | pn_messenger_name (pn_messenger_t *messenger) |
Retrieves the name of a Messenger. | |
PN_EXTERN int | pn_messenger_set_certificate (pn_messenger_t *messenger, const char *certificate) |
Sets the certificate file for a Messenger. | |
PN_EXTERN const char * | pn_messenger_get_certificate (pn_messenger_t *messenger) |
Gets the certificate file fora Messenger. | |
PN_EXTERN int | pn_messenger_set_private_key (pn_messenger_t *messenger, const char *private_key) |
Sets the private key file for a Messenger. | |
PN_EXTERN const char * | pn_messenger_get_private_key (pn_messenger_t *messenger) |
Gets the private key file for a Messenger. | |
PN_EXTERN int | pn_messenger_set_password (pn_messenger_t *messenger, const char *password) |
Sets the private key password for a Messenger. | |
PN_EXTERN const char * | pn_messenger_get_password (pn_messenger_t *messenger) |
Gets the private key file password for a Messenger. | |
PN_EXTERN int | pn_messenger_set_trusted_certificates (pn_messenger_t *messenger, const char *cert_db) |
Sets the trusted certificates database for a Messenger. | |
PN_EXTERN const char * | pn_messenger_get_trusted_certificates (pn_messenger_t *messenger) |
Gets the trusted certificates database for a Messenger. | |
PN_EXTERN int | pn_messenger_set_timeout (pn_messenger_t *messenger, int timeout) |
Sets the timeout for a Messenger. | |
PN_EXTERN int | pn_messenger_get_timeout (pn_messenger_t *messenger) |
Retrieves the timeout for a Messenger. | |
PN_EXTERN void | pn_messenger_free (pn_messenger_t *messenger) |
Frees a Messenger. | |
PN_EXTERN int | pn_messenger_errno (pn_messenger_t *messenger) |
Returns the error code for the Messenger. | |
PN_EXTERN const char * | pn_messenger_error (pn_messenger_t *messenger) |
Returns the error info for a Messenger. | |
PN_EXTERN pn_accept_mode_t | pn_messenger_get_accept_mode (pn_messenger_t *messenger) |
Gets the accept mode for a Messenger. | |
PN_EXTERN int | pn_messenger_set_accept_mode (pn_messenger_t *messenger, pn_accept_mode_t mode) |
Set the accept mode for a Messenger. | |
PN_EXTERN int | pn_messenger_get_outgoing_window (pn_messenger_t *messenger) |
Gets the outgoing window for a Messenger. | |
PN_EXTERN int | pn_messenger_set_outgoing_window (pn_messenger_t *messenger, int window) |
Sets the outgoing window for a Messenger. | |
PN_EXTERN int | pn_messenger_get_incoming_window (pn_messenger_t *messenger) |
Gets the incoming window for a Messenger. | |
PN_EXTERN int | pn_messenger_set_incoming_window (pn_messenger_t *messenger, int window) |
Sets the incoming window for a Messenger. | |
PN_EXTERN int | pn_messenger_start (pn_messenger_t *messenger) |
Starts a messenger. | |
PN_EXTERN int | pn_messenger_stop (pn_messenger_t *messenger) |
Stops a messenger. | |
PN_EXTERN pn_subscription_t * | pn_messenger_subscribe (pn_messenger_t *messenger, const char *source) |
Subscribes a messenger to messages from the specified source. | |
PN_EXTERN void * | pn_subscription_get_context (pn_subscription_t *sub) |
PN_EXTERN void | pn_subscription_set_context (pn_subscription_t *sub, void *context) |
PN_EXTERN int | pn_messenger_put (pn_messenger_t *messenger, pn_message_t *msg) |
Puts a message on the outgoing message queue for a messenger. | |
PN_EXTERN pn_status_t | pn_messenger_status (pn_messenger_t *messenger, pn_tracker_t tracker) |
Gets the last known remote state of the delivery associated with the given tracker. | |
PN_EXTERN int | pn_messenger_settle (pn_messenger_t *messenger, pn_tracker_t tracker, int flags) |
Frees a Messenger from tracking the status associated with a given tracker. | |
PN_EXTERN pn_tracker_t | pn_messenger_outgoing_tracker (pn_messenger_t *messenger) |
Gets the tracker for the message most recently provided to pn_messenger_put. | |
PN_EXTERN int | pn_messenger_send (pn_messenger_t *messenger) |
Sends any messages in the outgoing message queue for a messenger. | |
PN_EXTERN int | pn_messenger_recv (pn_messenger_t *messenger, int n) |
Receives up to n messages into the incoming message queue of a messenger. | |
PN_EXTERN int | pn_messenger_get (pn_messenger_t *messenger, pn_message_t *msg) |
Gets a message from the head of the incoming message queue of a messenger. | |
PN_EXTERN pn_tracker_t | pn_messenger_incoming_tracker (pn_messenger_t *messenger) |
Gets the tracker for the message most recently fetched by pn_messenger_get. | |
PN_EXTERN pn_subscription_t * | pn_messenger_incoming_subscription (pn_messenger_t *messenger) |
PN_EXTERN int | pn_messenger_accept (pn_messenger_t *messenger, pn_tracker_t tracker, int flags) |
Accepts the incoming messages identified by the tracker. | |
PN_EXTERN int | pn_messenger_reject (pn_messenger_t *messenger, pn_tracker_t tracker, int flags) |
Rejects the incoming messages identified by the tracker. | |
PN_EXTERN int | pn_messenger_outgoing (pn_messenger_t *messenger) |
Returns the number of messages in the outgoing message queue of a messenger. | |
PN_EXTERN int | pn_messenger_incoming (pn_messenger_t *messenger) |
Returns the number of messages in the incoming message queue of a messenger. |
The messenger API provides a high level interface for sending and receiving AMQP messages.
#define PN_CUMULATIVE (0x1) |
typedef struct pn_messenger_t pn_messenger_t |
Messenger.
typedef struct pn_subscription_t pn_subscription_t |
Subscription.
typedef int64_t pn_tracker_t |
enum pn_accept_mode_t |
enum pn_status_t |
PN_EXTERN pn_messenger_t* pn_messenger | ( | const char * | name | ) |
Construct a new Messenger with the given name.
The name is global. If a NULL name is supplied, a UUID based name will be chosen.
[in] | name | the name of the messenger or NULL |
PN_EXTERN int pn_messenger_accept | ( | pn_messenger_t * | messenger, |
pn_tracker_t | tracker, | ||
int | flags | ||
) |
Accepts the incoming messages identified by the tracker.
Use the PN_CUMULATIVE flag to accept everything prior to the supplied tracker.
[in] | messenger | the messenger |
[in] | tracker | an incoming tracker |
[in] | flags | 0 or PN_CUMULATIVE |
PN_EXTERN int pn_messenger_errno | ( | pn_messenger_t * | messenger | ) |
Returns the error code for the Messenger.
[in] | messenger | the messenger to check for errors |
PN_EXTERN const char* pn_messenger_error | ( | pn_messenger_t * | messenger | ) |
Returns the error info for a Messenger.
[in] | messenger | the messenger to check for errors |
PN_EXTERN void pn_messenger_free | ( | pn_messenger_t * | messenger | ) |
Frees a Messenger.
[in] | messenger | the messenger to free, no longer valid on return |
PN_EXTERN int pn_messenger_get | ( | pn_messenger_t * | messenger, |
pn_message_t * | msg | ||
) |
Gets a message from the head of the incoming message queue of a messenger.
[in] | messenger | the messenger |
[out] | msg | upon return contains the message from the head of the queue |
PN_EXTERN pn_accept_mode_t pn_messenger_get_accept_mode | ( | pn_messenger_t * | messenger | ) |
Gets the accept mode for a Messenger.
[in] | messenger | the messenger |
PN_EXTERN const char* pn_messenger_get_certificate | ( | pn_messenger_t * | messenger | ) |
Gets the certificate file fora Messenger.
[in] | messenger | the messenger |
PN_EXTERN int pn_messenger_get_incoming_window | ( | pn_messenger_t * | messenger | ) |
Gets the incoming window for a Messenger.
[in] | messenger | the Messenger |
PN_EXTERN int pn_messenger_get_outgoing_window | ( | pn_messenger_t * | messenger | ) |
Gets the outgoing window for a Messenger.
[in] | messenger | the messenger |
PN_EXTERN const char* pn_messenger_get_password | ( | pn_messenger_t * | messenger | ) |
Gets the private key file password for a Messenger.
[in] | messenger | the messenger |
PN_EXTERN const char* pn_messenger_get_private_key | ( | pn_messenger_t * | messenger | ) |
Gets the private key file for a Messenger.
[in] | messenger | the messenger |
PN_EXTERN int pn_messenger_get_timeout | ( | pn_messenger_t * | messenger | ) |
Retrieves the timeout for a Messenger.
[in] | messenger | the messenger |
PN_EXTERN const char* pn_messenger_get_trusted_certificates | ( | pn_messenger_t * | messenger | ) |
Gets the trusted certificates database for a Messenger.
[in] | messenger | the messenger |
PN_EXTERN int pn_messenger_incoming | ( | pn_messenger_t * | messenger | ) |
Returns the number of messages in the incoming message queue of a messenger.
[in] | messenger | the Messenger |
PN_EXTERN pn_subscription_t* pn_messenger_incoming_subscription | ( | pn_messenger_t * | messenger | ) |
PN_EXTERN pn_tracker_t pn_messenger_incoming_tracker | ( | pn_messenger_t * | messenger | ) |
Gets the tracker for the message most recently fetched by pn_messenger_get.
[in] | messenger | the messenger |
PN_EXTERN const char* pn_messenger_name | ( | pn_messenger_t * | messenger | ) |
Retrieves the name of a Messenger.
[in] | messenger | the messenger |
PN_EXTERN int pn_messenger_outgoing | ( | pn_messenger_t * | messenger | ) |
Returns the number of messages in the outgoing message queue of a messenger.
[in] | messenger | the Messenger |
PN_EXTERN pn_tracker_t pn_messenger_outgoing_tracker | ( | pn_messenger_t * | messenger | ) |
Gets the tracker for the message most recently provided to pn_messenger_put.
[in] | messenger | the messenger |
PN_EXTERN int pn_messenger_put | ( | pn_messenger_t * | messenger, |
pn_message_t * | msg | ||
) |
Puts a message on the outgoing message queue for a messenger.
[in] | messenger | the messenger |
[in] | msg | the message to put on the outgoing queue |
PN_EXTERN int pn_messenger_recv | ( | pn_messenger_t * | messenger, |
int | n | ||
) |
Receives up to n messages into the incoming message queue of a messenger.
If n is -1, Messenger will be able to receive as many messages as it can buffer internally. Blocks until at least one message is available in the incoming queue.
[in] | messenger | the messenger |
[in] | n | the maximum number of messages to receive or -1 to to receive as many messages as it can buffer internally. |
PN_EXTERN int pn_messenger_reject | ( | pn_messenger_t * | messenger, |
pn_tracker_t | tracker, | ||
int | flags | ||
) |
Rejects the incoming messages identified by the tracker.
Use the PN_CUMULATIVE flag to reject everything prior to the supplied tracker.
[in] | messenger | the Messenger |
[in] | tracker | an incoming tracker |
[in] | flags | 0 or PN_CUMULATIVE |
PN_EXTERN int pn_messenger_send | ( | pn_messenger_t * | messenger | ) |
Sends any messages in the outgoing message queue for a messenger.
This will block until the messages have been sent.
[in] | messenger | the messager |
PN_EXTERN int pn_messenger_set_accept_mode | ( | pn_messenger_t * | messenger, |
pn_accept_mode_t | mode | ||
) |
Set the accept mode for a Messenger.
If set to PN_ACCEPT_MODE_AUTO, the messenger will automatically accept every message as it is returned by pn_messenger_get(). If set to PN_ACCEPT_MODE_MANUAL, incoming messages must be manually accepted or rejected (either individually or cumulatively) via pn_messenger_accept() and/or pn_messenger_reject().
[in] | messenger | the messenger to set the accept mode for |
[in] | mode | one of PN_ACCEPT_MODE_AUTO or PN_ACCEPT_MODE_MANUAL |
PN_EXTERN int pn_messenger_set_certificate | ( | pn_messenger_t * | messenger, |
const char * | certificate | ||
) |
Sets the certificate file for a Messenger.
[in] | messenger | the messenger |
[in] | certificate | a path to a certificate file |
PN_EXTERN int pn_messenger_set_incoming_window | ( | pn_messenger_t * | messenger, |
int | window | ||
) |
Sets the incoming window for a Messenger.
If the incoming window is set to a positive value, then after each call to pn_messenger_accept or pn_messenger_reject, the Messenger will track the status of that many deliveries.
[in] | messenger | the Messenger |
[in] | window | the number of deliveries to track |
PN_EXTERN int pn_messenger_set_outgoing_window | ( | pn_messenger_t * | messenger, |
int | window | ||
) |
Sets the outgoing window for a Messenger.
If the outgoing window is set to a positive value, then after each call to pn_messenger_send, the Messenger will track the status of that many deliveries.
[in] | messenger | the Messenger |
[in] | window | the number of deliveries to track |
PN_EXTERN int pn_messenger_set_password | ( | pn_messenger_t * | messenger, |
const char * | password | ||
) |
Sets the private key password for a Messenger.
[in] | messenger | the messenger |
[in] | password | the password for the private key file |
PN_EXTERN int pn_messenger_set_private_key | ( | pn_messenger_t * | messenger, |
const char * | private_key | ||
) |
Sets the private key file for a Messenger.
[in] | messenger | the Messenger |
[in] | private_key | a path to a private key file |
PN_EXTERN int pn_messenger_set_timeout | ( | pn_messenger_t * | messenger, |
int | timeout | ||
) |
Sets the timeout for a Messenger.
A negative timeout means infinite.
[in] | messenger | the messenger |
[in] | timeout | the new timeout for the messenger, in milliseconds |
PN_EXTERN int pn_messenger_set_trusted_certificates | ( | pn_messenger_t * | messenger, |
const char * | cert_db | ||
) |
Sets the trusted certificates database for a Messenger.
[in] | messenger | the messenger |
[in] | cert_db | a path to the certificates database |
PN_EXTERN int pn_messenger_settle | ( | pn_messenger_t * | messenger, |
pn_tracker_t | tracker, | ||
int | flags | ||
) |
Frees a Messenger from tracking the status associated with a given tracker.
Use the PN_CUMULATIVE flag to indicate everything up to (and including) the given tracker.
[in] | messenger | the Messenger |
[in] | tracker | identifies a delivery |
[in] | flags | 0 or PN_CUMULATIVE |
PN_EXTERN int pn_messenger_start | ( | pn_messenger_t * | messenger | ) |
Starts a messenger.
A messenger cannot send or recv messages until it is started.
[in] | messenger | the messenger to start |
PN_EXTERN pn_status_t pn_messenger_status | ( | pn_messenger_t * | messenger, |
pn_tracker_t | tracker | ||
) |
Gets the last known remote state of the delivery associated with the given tracker.
[in] | messenger | the messenger |
[in] | tracker | the tracker identify the delivery |
PN_EXTERN int pn_messenger_stop | ( | pn_messenger_t * | messenger | ) |
Stops a messenger.
A messenger cannot send or recv messages when it is stopped.
[in] | messenger | the messenger to stop |
PN_EXTERN pn_subscription_t* pn_messenger_subscribe | ( | pn_messenger_t * | messenger, |
const char * | source | ||
) |
Subscribes a messenger to messages from the specified source.
[in] | messenger | the messenger to subscribe |
[in] | source |
PN_EXTERN void* pn_subscription_get_context | ( | pn_subscription_t * | sub | ) |
PN_EXTERN void pn_subscription_set_context | ( | pn_subscription_t * | sub, |
void * | context | ||
) |