void RabbitMQConnection::deleteQueue (const std::string &queue_name,
                                      bool ifUnused, bool ifEmpty)
{
  amqp_bytes_t queue = amqp_cstring_bytes (queue_name.c_str() );

  amqp_queue_delete (conn, 1, queue, ifUnused, ifEmpty);
}
Пример #2
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;
}