summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jabber_whiteboard/session-manager.cpp29
-rw-r--r--src/jabber_whiteboard/session-manager.h6
2 files changed, 35 insertions, 0 deletions
diff --git a/src/jabber_whiteboard/session-manager.cpp b/src/jabber_whiteboard/session-manager.cpp
index 536bc8db4..36bf3615b 100644
--- a/src/jabber_whiteboard/session-manager.cpp
+++ b/src/jabber_whiteboard/session-manager.cpp
@@ -107,6 +107,35 @@ SessionManager::send(const Glib::ustring &destJid,
}
bool
+SessionManager::sendProtocol(const Glib::ustring &destJid,
+ const MessageType type,
+ const Glib::ustring &data)
+{
+ Pedro::DOMString xmlData = Pedro::Parser::encode(data);
+ char *fmt=
+ "<message type='chat' from='%s' to='%s' id='ink_%d'>"
+ "<wb xmlns='%s' "
+ "protocol='%d' type='%d' seq='%d'><x:inkboard-data>%s</x:inkboard-data></inkboard>"
+ "<body></body>"
+ "</message>";
+ if (!getClient().write(fmt,
+ getClient().getJid().c_str(),
+ destJid.c_str(),
+ getClient().getMsgId(),
+ INKBOARD_XMLNS,
+ 2,
+ (MessageType)type,
+ getSequenceNumber(),
+ xmlData.c_str()
+ ))
+ {
+ return false;
+ }
+
+ return true;
+}
+
+bool
SessionManager::sendGroup(const Glib::ustring &groupJid,
const MessageType type,
const Glib::ustring &data)
diff --git a/src/jabber_whiteboard/session-manager.h b/src/jabber_whiteboard/session-manager.h
index 880049db8..0a2c22f55 100644
--- a/src/jabber_whiteboard/session-manager.h
+++ b/src/jabber_whiteboard/session-manager.h
@@ -75,6 +75,12 @@ public:
virtual bool send(const Glib::ustring &destJid,
const MessageType type,
const Glib::ustring &data);
+ /**
+ *
+ */
+ virtual bool sendProtocol(const Glib::ustring &destJid,
+ const MessageType type,
+ const Glib::ustring &data);
/**
*