Beispiel #1
0
static void do_publish(amqp_connection_state_t conn,
                       char *exchange, char *routing_key,
		       amqp_basic_properties_t *props, amqp_bytes_t body)
{
	int res = amqp_basic_publish(conn, 1,
				     cstring_bytes(exchange),
				     cstring_bytes(routing_key),
				     0, 0, props, body);
	die_amqp_error(res, "basic.publish");
}
Beispiel #2
0
static int do_get(amqp_connection_state_t conn, char *queue)
{
	amqp_rpc_reply_t r
		= amqp_basic_get(conn, 1, cstring_bytes(queue), 1);
	die_rpc(r, "basic.get");

	if (r.reply.id == AMQP_BASIC_GET_EMPTY_METHOD)
		return 0;

	copy_body(conn, 1);
	return 1;
}
int main(int argc, const char **argv)
{
  amqp_connection_state_t conn;
  char *queue = NULL;
  int durable = 0;

  struct poptOption options[] = {
    INCLUDE_OPTIONS(connect_options),
    {
      "queue", 'q', POPT_ARG_STRING, &queue, 0,
      "the queue name to declare, or the empty string", "queue"
    },
    {
      "durable", 'd', POPT_ARG_VAL, &durable, 1,
      "declare a durable queue", NULL
    },
    POPT_AUTOHELP
    { NULL, '\0', 0, NULL, 0, NULL, NULL }
  };

  process_all_options(argc, argv, options);

  if (queue == NULL) {
    fprintf(stderr, "queue name not specified\n");
    return 1;
  }

  conn = make_connection();
  {
    amqp_queue_declare_ok_t *reply = amqp_queue_declare(conn, 1,
                                     cstring_bytes(queue),
                                     0,
                                     durable,
                                     0,
                                     0,
                                     amqp_empty_table);
    if (reply == NULL) {
      die_rpc(amqp_get_rpc_reply(conn), "queue.declare");
    }

    printf("%.*s\n", (int)reply->queue.len, (char *)reply->queue.bytes);
  }
  close_connection(conn);
  return 0;
}
Beispiel #4
0
int main(int argc, const char **argv)
{
	amqp_connection_state_t conn;
	char *queue = NULL;
	int if_unused = 0;
	int if_empty = 0;

	struct poptOption options[] = {
		INCLUDE_OPTIONS(connect_options),
		{"queue", 'q', POPT_ARG_STRING, &queue, 0,
		 "the queue name to delete", "queue"},
		{"if-unused", 'u', POPT_ARG_VAL, &if_unused, 1,
		 "do not delete unless queue is unused", NULL},
		{"if-empty", 'e', POPT_ARG_VAL, &if_empty, 1,
		 "do not delete unless queue is empty", NULL},
		POPT_AUTOHELP
		{ NULL, 0, 0, NULL, 0 }
	};

	process_all_options(argc, argv, options);

	if (queue == NULL || *queue == '\0') {
	  fprintf(stderr, "queue name not specified\n");
	  return 1;
	}

	conn = make_connection();
	{
	  amqp_queue_delete_ok_t *reply = amqp_queue_delete(conn, 1,
							    cstring_bytes(queue),
							    if_unused,
							    if_empty);
	  if (reply == NULL) {
	    die_rpc(amqp_get_rpc_reply(conn), "queue.delete");
	  }
	  printf("%u\n", reply->message_count);
	}
	close_connection(conn);
	return 0;
}