From ad724dd62db0f497e2d84ef3f56af6dd2839892d Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Wed, 14 Feb 2007 15:38:57 +0000 Subject: Add durability property to queues and pass this to broker on declare. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@507582 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/lib/client/ClientChannel.cpp | 2 +- cpp/lib/client/ClientQueue.cpp | 18 +++++++++++++----- cpp/lib/client/ClientQueue.h | 19 +++++++++++-------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/cpp/lib/client/ClientChannel.cpp b/cpp/lib/client/ClientChannel.cpp index 3d0b547b07..d3c91d786e 100644 --- a/cpp/lib/client/ClientChannel.cpp +++ b/cpp/lib/client/ClientChannel.cpp @@ -87,7 +87,7 @@ void Channel::deleteExchange(Exchange& exchange, bool synch){ void Channel::declareQueue(Queue& queue, bool synch){ string name = queue.getName(); FieldTable args; - AMQFrame* frame = new AMQFrame(version, id, new QueueDeclareBody(version, 0, name, false, false, + AMQFrame* frame = new AMQFrame(version, id, new QueueDeclareBody(version, 0, name, false/*passive*/, queue.isDurable(), queue.isExclusive(), queue.isAutoDelete(), !synch, args)); if(synch){ diff --git a/cpp/lib/client/ClientQueue.cpp b/cpp/lib/client/ClientQueue.cpp index 455bb64d0b..773be504d8 100644 --- a/cpp/lib/client/ClientQueue.cpp +++ b/cpp/lib/client/ClientQueue.cpp @@ -20,14 +20,14 @@ */ #include -qpid::client::Queue::Queue() : name(""), autodelete(true), exclusive(true){} +qpid::client::Queue::Queue() : name(""), autodelete(true), exclusive(true), durable(false){} -qpid::client::Queue::Queue(std::string _name) : name(_name), autodelete(false), exclusive(false){} +qpid::client::Queue::Queue(std::string _name) : name(_name), autodelete(false), exclusive(false), durable(false){} -qpid::client::Queue::Queue(std::string _name, bool temp) : name(_name), autodelete(temp), exclusive(temp){} +qpid::client::Queue::Queue(std::string _name, bool temp) : name(_name), autodelete(temp), exclusive(temp), durable(false){} -qpid::client::Queue::Queue(std::string _name, bool _autodelete, bool _exclusive) - : name(_name), autodelete(_autodelete), exclusive(_exclusive){} +qpid::client::Queue::Queue(std::string _name, bool _autodelete, bool _exclusive, bool _durable) + : name(_name), autodelete(_autodelete), exclusive(_exclusive), durable(_durable){} const std::string& qpid::client::Queue::getName() const{ return name; @@ -45,6 +45,14 @@ bool qpid::client::Queue::isExclusive() const{ return exclusive; } +bool qpid::client::Queue::isDurable() const{ + return durable; +} + +void qpid::client::Queue::setDurable(bool _durable){ + durable = _durable; +} + diff --git a/cpp/lib/client/ClientQueue.h b/cpp/lib/client/ClientQueue.h index 037856ecd2..4a63097c55 100644 --- a/cpp/lib/client/ClientQueue.h +++ b/cpp/lib/client/ClientQueue.h @@ -55,24 +55,25 @@ namespace client { std::string name; const bool autodelete; const bool exclusive; + bool durable; public: /** - * Creates an unnamed, temporary queue. A name will be - * assigned to this queue instance by a call to + * Creates an unnamed, non-durable, 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. + * Creates a shared, non-durable, 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. + * Creates a non-durable queue with a given name. * * @param name the name of the queue * @@ -81,17 +82,19 @@ namespace client { */ Queue(std::string name, bool temp); /** - * This constructor allows the autodelete and exclusive - * propeties to be explictly set. Note however that if + * This constructor allows the autodelete, exclusive and + * durable 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); + Queue(std::string name, bool autodelete, bool exclusive, bool durable); const std::string& getName() const; void setName(const std::string&); bool isAutoDelete() const; bool isExclusive() const; + bool isDurable() const; + void setDurable(bool durable); }; } -- cgit v1.2.1