summaryrefslogtreecommitdiff
path: root/qpid/cpp/lib/client
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
commitae462507be3217e2b4c173a68dad69d76fab35cc (patch)
tree1375f9418fd4962be5460fa2b2b5ff992616b628 /qpid/cpp/lib/client
parent063a5d6bc65178f555c7cdf00b501101fbb438c6 (diff)
downloadqpid-python-ae462507be3217e2b4c173a68dad69d76fab35cc.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@507582 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/lib/client')
-rw-r--r--qpid/cpp/lib/client/ClientChannel.cpp2
-rw-r--r--qpid/cpp/lib/client/ClientQueue.cpp18
-rw-r--r--qpid/cpp/lib/client/ClientQueue.h19
3 files changed, 25 insertions, 14 deletions
diff --git a/qpid/cpp/lib/client/ClientChannel.cpp b/qpid/cpp/lib/client/ClientChannel.cpp
index 3d0b547b07..d3c91d786e 100644
--- a/qpid/cpp/lib/client/ClientChannel.cpp
+++ b/qpid/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/qpid/cpp/lib/client/ClientQueue.cpp b/qpid/cpp/lib/client/ClientQueue.cpp
index 455bb64d0b..773be504d8 100644
--- a/qpid/cpp/lib/client/ClientQueue.cpp
+++ b/qpid/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/qpid/cpp/lib/client/ClientQueue.h b/qpid/cpp/lib/client/ClientQueue.h
index 037856ecd2..4a63097c55 100644
--- a/qpid/cpp/lib/client/ClientQueue.h
+++ b/qpid/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);
};
}