summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/components/queue
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/trunk/components/queue')
-rw-r--r--sca-cpp/trunk/components/queue/qpid.hpp9
-rw-r--r--sca-cpp/trunk/components/queue/queue-listener.cpp4
-rw-r--r--sca-cpp/trunk/components/queue/queue-sender.cpp2
3 files changed, 12 insertions, 3 deletions
diff --git a/sca-cpp/trunk/components/queue/qpid.hpp b/sca-cpp/trunk/components/queue/qpid.hpp
index 63f27d2519..ef53c529e8 100644
--- a/sca-cpp/trunk/components/queue/qpid.hpp
+++ b/sca-cpp/trunk/components/queue/qpid.hpp
@@ -65,6 +65,15 @@ public:
debug("queue::qpidonnection::copy");
}
+ const QpidConnection& operator=(const QpidConnection& qc) {
+ debug("queue::qpidonnection::operator=");
+ if(this == &c)
+ return *this;
+ owner = false;
+ c = qc.c;
+ return *this;
+ }
+
~QpidConnection() {
debug("queue::~qpidonnection");
if (!owner)
diff --git a/sca-cpp/trunk/components/queue/queue-listener.cpp b/sca-cpp/trunk/components/queue/queue-listener.cpp
index 3c30e7feca..483d0de65a 100644
--- a/sca-cpp/trunk/components/queue/queue-listener.cpp
+++ b/sca-cpp/trunk/components/queue/queue-listener.cpp
@@ -123,9 +123,9 @@ private:
const failable<value> start(const list<value>& params) {
// Extract the relay reference and the AMQP key and queue name
const value rel = car(params);
- const value pk = ((lambda<value(list<value>)>)cadr(params))(list<value>());
+ const value pk = ((lambda<value(const list<value>&)>)cadr(params))(list<value>());
const value key = isList(pk)? (list<value>)pk : mklist<value>(pk);
- const value qname = ((lambda<value(list<value>)>)caddr(params))(list<value>());
+ const value qname = ((lambda<value(const list<value>&)>)caddr(params))(list<value>());
// Create an AMQP session
QpidConnection qc(false);
diff --git a/sca-cpp/trunk/components/queue/queue-sender.cpp b/sca-cpp/trunk/components/queue/queue-sender.cpp
index ff2ede1057..202a0e4435 100644
--- a/sca-cpp/trunk/components/queue/queue-sender.cpp
+++ b/sca-cpp/trunk/components/queue/queue-sender.cpp
@@ -48,7 +48,7 @@ const failable<value> post(const list<value>& params) {
QpidSession qs(qc);
// Post the item
- const value pk = ((lambda<value(list<value>)>)caddr(params))(list<value>());
+ const value pk = ((lambda<value(const list<value>&)>)caddr(params))(list<value>());
const value key = isList(pk)? append<value>(pk, (list<value>)car(params)) : cons<value>(pk, (list<value>)car(params));
debug(key, "queue::post::key");
debug(cadr(params), "queue::post::value");