summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/components/chat
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/trunk/components/chat')
-rw-r--r--sca-cpp/trunk/components/chat/chat-sender.cpp4
-rw-r--r--sca-cpp/trunk/components/chat/chat-sender2.cpp4
-rw-r--r--sca-cpp/trunk/components/chat/chat-sendreceiver.cpp4
-rw-r--r--sca-cpp/trunk/components/chat/xmpp.hpp16
4 files changed, 21 insertions, 7 deletions
diff --git a/sca-cpp/trunk/components/chat/chat-sender.cpp b/sca-cpp/trunk/components/chat/chat-sender.cpp
index 0672292a06..a4cabef8de 100644
--- a/sca-cpp/trunk/components/chat/chat-sender.cpp
+++ b/sca-cpp/trunk/components/chat/chat-sender.cpp
@@ -118,8 +118,8 @@ private:
const failable<value> start(const list<value>& params) {
// Extract the the XMPP JID and password
const list<value> props = params;
- const value jid = ((lambda<value(list<value>)>)car(props))(list<value>());
- const value pass = ((lambda<value(list<value>)>)cadr(props))(list<value>());
+ const value jid = ((lambda<value(const list<value>&)>)car(props))(list<value>());
+ const value pass = ((lambda<value(const list<value>&)>)cadr(props))(list<value>());
// Create an XMPP client session
XMPPClient xc(jid, pass, false);
diff --git a/sca-cpp/trunk/components/chat/chat-sender2.cpp b/sca-cpp/trunk/components/chat/chat-sender2.cpp
index b230d130c1..0e00728022 100644
--- a/sca-cpp/trunk/components/chat/chat-sender2.cpp
+++ b/sca-cpp/trunk/components/chat/chat-sender2.cpp
@@ -41,7 +41,7 @@ namespace sender {
/**
* Post an item to an XMPP JID.
*/
-const failable<value> post(const lambda<value(const list<value>&)> jid, const lambda<value(const list<value>&)> pass, const lambda<value(const list<value>&)> to, const lambda<value(const list<value>&)> msg, const list<value>& params) {
+const failable<value> post(const lambda<value(const list<value>&)>& jid, const lambda<value(const list<value>&)>& pass, const lambda<value(const list<value>&)>& to, const lambda<value(const list<value>&)>& msg, const list<value>& params) {
const value vjid = jid(mklist<value>("get", params));
const value vpass = pass(mklist<value>("get", params));
@@ -69,7 +69,7 @@ const failable<value> post(const lambda<value(const list<value>&)> jid, const la
*/
class chatSender {
public:
- chatSender(const lambda<value(const list<value>&)> jid, const lambda<value(const list<value>&)> pass, const lambda<value(const list<value>&)> to, const lambda<value(const list<value>&)> msg) : jid(jid), pass(pass), to(to), msg(msg) {
+ chatSender(const lambda<value(const list<value>&)>& jid, const lambda<value(const list<value>&)>& pass, const lambda<value(const list<value>&)>& to, const lambda<value(const list<value>&)>& msg) : jid(jid), pass(pass), to(to), msg(msg) {
}
const value operator()(const list<value>& params) const {
diff --git a/sca-cpp/trunk/components/chat/chat-sendreceiver.cpp b/sca-cpp/trunk/components/chat/chat-sendreceiver.cpp
index aac8d69f6c..bfbd32b9ae 100644
--- a/sca-cpp/trunk/components/chat/chat-sendreceiver.cpp
+++ b/sca-cpp/trunk/components/chat/chat-sendreceiver.cpp
@@ -131,8 +131,8 @@ const failable<value> start(const list<value>& params) {
const bool hasRelay = !isNil(cddr(params));
const value rel = hasRelay? car(params) : value(lambda<value(const list<value>&)>());
const list<value> props = hasRelay? cdr(params) : params;
- const value jid = ((lambda<value(list<value>)>)car(props))(list<value>());
- const value pass = ((lambda<value(list<value>)>)cadr(props))(list<value>());
+ const value jid = ((lambda<value(const list<value>&)>)car(props))(list<value>());
+ const value pass = ((lambda<value(const list<value>&)>)cadr(props))(list<value>());
// Create an XMPP client session
XMPPClient xc(jid, pass, false);
diff --git a/sca-cpp/trunk/components/chat/xmpp.hpp b/sca-cpp/trunk/components/chat/xmpp.hpp
index e5f423c270..aa006029fa 100644
--- a/sca-cpp/trunk/components/chat/xmpp.hpp
+++ b/sca-cpp/trunk/components/chat/xmpp.hpp
@@ -76,6 +76,20 @@ public:
debug("chat::xmppclient::copy");
}
+ const XMPPClient& operator=(const XMPPClient& xc) {
+ debug("chat::xmppclient::operator=");
+ if(this == &xc)
+ return *this;
+ owner = false;
+ ctx = xc.ctx;
+ conn = xc.conn;
+ listener = xc.listener;
+ connecting = xc.connecting;
+ connected = xc.connected;
+ disconnecting = xc.disconnecting;
+ return *this;
+ }
+
~XMPPClient() {
debug("chat::~xmppclient");
extern const failable<bool> disconnect(XMPPClient& xc);
@@ -98,7 +112,7 @@ private:
friend const failable<bool> disconnect(XMPPClient& xc);
friend const failable<bool> listen(const lambda<failable<bool>(const value&, const value&, XMPPClient&)>& listener, XMPPClient& xc);
- const bool owner;
+ bool owner;
xmpp_ctx_t* ctx;
xmpp_conn_t* conn;
lambda<failable<bool>(const value&, const value&, XMPPClient&)> listener;