summaryrefslogtreecommitdiff
path: root/librabbitmq/amqp.h
diff options
context:
space:
mode:
authorTony Garnock-Jones <tonyg@kcbbs.gen.nz>2009-05-07 00:40:43 +0100
committerTony Garnock-Jones <tonyg@kcbbs.gen.nz>2009-05-07 00:40:43 +0100
commita32fbd1ba39ab1ba9d1e798b1065b59f7f755267 (patch)
treec850e708249c3305ecdaa5a736ee9fa705a63453 /librabbitmq/amqp.h
parentdc04434f7398528ef69954f0f840ac9ce5847347 (diff)
downloadrabbitmq-c-github-ask-a32fbd1ba39ab1ba9d1e798b1065b59f7f755267.tar.gz
Introduce more mid-level API
Diffstat (limited to 'librabbitmq/amqp.h')
-rw-r--r--librabbitmq/amqp.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/librabbitmq/amqp.h b/librabbitmq/amqp.h
index f27af7f..7210ec6 100644
--- a/librabbitmq/amqp.h
+++ b/librabbitmq/amqp.h
@@ -15,6 +15,8 @@ typedef struct amqp_bytes_t_ {
void *bytes;
} amqp_bytes_t;
+#define AMQP_EMPTY_BYTES ((amqp_bytes_t) { .len = 0, .bytes = NULL })
+
typedef struct amqp_decimal_t_ {
int decimals;
uint32_t value;
@@ -27,6 +29,8 @@ typedef struct amqp_table_t_ {
struct amqp_table_entry_t_ *entries;
} amqp_table_t;
+#define AMQP_EMPTY_TABLE ((amqp_table_t) { .num_entries = 0, .entries = NULL })
+
typedef struct amqp_table_entry_t_ {
amqp_bytes_t key;
char kind;
@@ -159,6 +163,15 @@ extern amqp_rpc_reply_t amqp_simple_rpc(amqp_connection_state_t state,
amqp_method_number_t expected_reply_id,
void *decoded_request_method);
+#define AMQP_SIMPLE_RPC(state, channel, classname, requestname, replyname, structname, ...) \
+ ({ \
+ structname _simple_rpc_request___ = (structname) { __VA_ARGS__ }; \
+ amqp_simple_rpc(state, channel, \
+ AMQP_ ## classname ## _ ## requestname ## _METHOD, \
+ AMQP_ ## classname ## _ ## replyname ## _METHOD, \
+ &_simple_rpc_request___); \
+ })
+
extern amqp_rpc_reply_t amqp_login(amqp_connection_state_t state,
char const *vhost,
int frame_max,
@@ -176,6 +189,41 @@ extern int amqp_basic_publish(amqp_connection_state_t state,
extern amqp_rpc_reply_t amqp_channel_close(amqp_connection_state_t state, int code);
extern amqp_rpc_reply_t amqp_connection_close(amqp_connection_state_t state, int code);
+extern amqp_rpc_reply_t amqp_rpc_reply;
+
+extern struct amqp_exchange_declare_ok_t_ *amqp_exchange_declare(amqp_connection_state_t state,
+ amqp_channel_t channel,
+ amqp_bytes_t exchange,
+ amqp_bytes_t type,
+ amqp_boolean_t passive,
+ amqp_boolean_t durable,
+ amqp_boolean_t auto_delete,
+ amqp_table_t arguments);
+
+extern struct amqp_queue_declare_ok_t_ *amqp_queue_declare(amqp_connection_state_t state,
+ amqp_channel_t channel,
+ amqp_bytes_t queue,
+ amqp_boolean_t passive,
+ amqp_boolean_t durable,
+ amqp_boolean_t exclusive,
+ amqp_boolean_t auto_delete,
+ amqp_table_t arguments);
+
+extern struct amqp_queue_bind_ok_t_ *amqp_queue_bind(amqp_connection_state_t state,
+ amqp_channel_t channel,
+ amqp_bytes_t queue,
+ amqp_bytes_t exchange,
+ amqp_bytes_t routing_key,
+ amqp_table_t arguments);
+
+extern struct amqp_basic_consume_ok_t_ *amqp_basic_consume(amqp_connection_state_t state,
+ amqp_channel_t channel,
+ amqp_bytes_t queue,
+ amqp_bytes_t consumer_tag,
+ amqp_boolean_t no_local,
+ amqp_boolean_t no_ack,
+ amqp_boolean_t exclusive);
+
#ifdef __cplusplus
}
#endif