summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2007-02-14 15:38:57 +0000
committerGordon Sim <gsim@apache.org>2007-02-14 15:38:57 +0000
commitad724dd62db0f497e2d84ef3f56af6dd2839892d (patch)
treebec0b19201ec1575dfaa9b0732da91c5a14a83d0
parenteabb9c036a0a4bce2aa2decbb21ada22b423e3ae (diff)
downloadqpid-python-ad724dd62db0f497e2d84ef3f56af6dd2839892d.tar.gz
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
-rw-r--r--cpp/lib/client/ClientChannel.cpp2
-rw-r--r--cpp/lib/client/ClientQueue.cpp18
-rw-r--r--cpp/lib/client/ClientQueue.h19
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 <ClientQueue.h>
-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);
};
}