summaryrefslogtreecommitdiff
path: root/cpp/lib/client/ClientQueue.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/lib/client/ClientQueue.h')
-rw-r--r--cpp/lib/client/ClientQueue.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/cpp/lib/client/ClientQueue.h b/cpp/lib/client/ClientQueue.h
index df7235e4ab..037856ecd2 100644
--- a/cpp/lib/client/ClientQueue.h
+++ b/cpp/lib/client/ClientQueue.h
@@ -26,6 +26,31 @@
namespace qpid {
namespace client {
+ /**
+ * A 'handle' used to represent an AMQP queue in the Channel
+ * methods. Creating an instance of this class does not cause the
+ * queue to be created on the broker. Rather, an instance of this
+ * class should be passed to Channel::declareQueue() to ensure
+ * that the queue exists or is created.
+ *
+ * Queues hold messages and allow clients to consume
+ * (see Channel::consume()) or get (see Channel::get()) those messags. A
+ * queue receives messages by being bound to one or more Exchange;
+ * messages published to that exchange may then be routed to the
+ * queue based on the details of the binding and the type of the
+ * exchange (see Channel::bind()).
+ *
+ * Queues are identified by a name. They can be exclusive (in which
+ * case they can only be used in the context of the connection
+ * over which they were declared, and are deleted when then
+ * connection closes), or they can be shared. Shared queues can be
+ * auto deleted when they have no consumers.
+ *
+ * We use the term 'temporary queue' to refer to an exclusive
+ * queue.
+ *
+ * \ingroup clientapi
+ */
class Queue{
std::string name;
const bool autodelete;
@@ -33,9 +58,35 @@ namespace client {
public:
+ /**
+ * Creates an unnamed, temporary queue. A name will be
+ * assigned to this queue instance by a call to
+ * Channel::declareQueue().
+ */
Queue();
+ /**
+ * Creates a shared queue with a given name, that will not be
+ * autodeleted.
+ *
+ * @param name the name of the queue
+ */
Queue(std::string name);
+ /**
+ * Creates a queue with a given name.
+ *
+ * @param name the name of the queue
+ *
+ * @param temp if true the queue will be a temporary queue, if
+ * false it will be shared and not autodeleted.
+ */
Queue(std::string name, bool temp);
+ /**
+ * This constructor allows the autodelete and exclusive
+ * propeties to be explictly set. Note however that if
+ * exclusive is true, autodelete has no meaning as exclusive
+ * queues are always destroyed when the connection that
+ * created them is closed.
+ */
Queue(std::string name, bool autodelete, bool exclusive);
const std::string& getName() const;
void setName(const std::string&);