#include <common/xroad_xml.h>
#include <stdint.h>
#include <string.h>
#include <amqp.h>
Go to the source code of this file.
|
typedef struct rabbit_s | rabbit_t |
|
|
rabbit_t * | rabbit_create (xroad_xml_tag_t cfg, rabbit_callback_t cback) |
|
xroad_errno_t | rabbit_reconfig (rabbit_t *r, xroad_xml_tag_t cfg) |
|
void | rabbit_destroy (rabbit_t *r) |
|
xroad_errno_t | rabbit_start (rabbit_t *r) |
|
xroad_errno_t | rabbit_stop (rabbit_t *r) |
|
xroad_errno_t | rabbit_send (rabbit_t *r, xroad_str_t exchange, xroad_str_t binding_key, const amqp_basic_properties_t *props, void *data, size_t len) |
|
xroad_errno_t | rabbit_ack (rabbit_t *r, uint64_t delivery_tag) |
|
xroad_errno_t | rabbit_queue_bind (rabbit_t *r, xroad_str_t queue, xroad_str_t exchange, xroad_str_t binding_key) |
|
xroad_errno_t | rabbit_queue_unbind (rabbit_t *r, xroad_str_t queue, xroad_str_t exchange, xroad_str_t binding_key) |
|
◆ rabbit_ack()
xroad_errno_t rabbit_ack |
( |
rabbit_t * |
r, |
|
|
uint64_t |
delivery_tag |
|
) |
| |
send ack to rabbit
- Parameters
-
[in] | r | - rabbit instance |
[in] | delivery_tag | - delivery tag |
◆ rabbit_create()
create new rabbit instance
- Parameters
-
- Returns
- rabbit instance, NULL - failed
◆ rabbit_destroy()
void rabbit_destroy |
( |
rabbit_t * |
r | ) |
|
destroy rabbit instance
- Parameters
-
[in] | r | - rabbit instance to destroy |
◆ rabbit_queue_bind()
bind queue to exchange with routing key
- Parameters
-
[in] | r | - rabbit instance |
[in] | queue | - queue to bind |
[in] | exchange | - exchange |
[in] | bindin_key | - binding key |
- Returns
- XROAD_OK - bound, else failed
◆ rabbit_queue_unbind()
unbind queue to exchange with routing key
- Parameters
-
[in] | r | - rabbit instance |
[in] | queue | - queue to bind |
[in] | exchange | - exchange |
[in] | bindin_key | - binding key |
- Returns
- XROAD_OK - unbound, else failed
◆ rabbit_reconfig()
xroad_errno_t rabbit_reconfig |
( |
rabbit_t * |
r, |
|
|
xroad_xml_tag_t |
cfg |
|
) |
| |
reconfig rabbit library. MUST be called at each reconfig event received
- Parameters
-
[in] | r | - rabbit instance to reconfig |
[in] | cfg | - new library configuration |
- Returns
- XROAD_OK - reconfigured
◆ rabbit_send()
xroad_errno_t rabbit_send |
( |
rabbit_t * |
r, |
|
|
xroad_str_t |
exchange, |
|
|
xroad_str_t |
binding_key, |
|
|
const amqp_basic_properties_t * |
props, |
|
|
void * |
data, |
|
|
size_t |
len |
|
) |
| |
send message to AMQP broker
- Parameters
-
[in] | r | - rabbit instance |
[in] | exchange | - exchange to send |
[in] | binding_key | - binding key |
[in] | props | - message properties |
[in] | data | - data to send |
[in] | len | - data length |
- Returns
- XROAD_OK - data has been sent, else sending failed
◆ rabbit_start()
xroad_errno_t rabbit_start |
( |
rabbit_t * |
r | ) |
|
start rabbit - establish connection with AMQP broker
- Parameters
-
- Returns
- XROAD_OK - connection established, XROAD_FAILED - shit happened
◆ rabbit_stop()
xroad_errno_t rabbit_stop |
( |
rabbit_t * |
r | ) |
|
close rabbit connection to AMQP broker
- Parameters
-
[in] | r | - rabbit instance to stop |