XROAD
rabbit.h File Reference
#include <common/xroad_xml.h>
#include <stdint.h>
#include <string.h>
#include <amqp.h>
Include dependency graph for rabbit.h:

Go to the source code of this file.

Classes

struct  rabbit_callback_t
 

Typedefs

typedef struct rabbit_s rabbit_t
 

Functions

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)
 

Detailed Description

Function Documentation

◆ 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()

rabbit_t* rabbit_create ( xroad_xml_tag_t  cfg,
rabbit_callback_t  cback 
)

create new rabbit instance

Parameters
[in]cfg- xml config
[in]cback- rabbit callback (see rabbit_callback_t for details)
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()

xroad_errno_t rabbit_queue_bind ( rabbit_t *  r,
xroad_str_t  queue,
xroad_str_t  exchange,
xroad_str_t  binding_key 
)

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()

xroad_errno_t rabbit_queue_unbind ( rabbit_t *  r,
xroad_str_t  queue,
xroad_str_t  exchange,
xroad_str_t  binding_key 
)

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
[in]r- rabbit instance
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