From 9ece5e827fa308b36f18884487d34e0073870496 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Mon, 11 Jan 2010 18:35:05 +0100
Subject: Added SendMessage script.


diff --git a/Swiften/Examples/SConscript b/Swiften/Examples/SConscript
new file mode 100644
index 0000000..4ab80c2
--- /dev/null
+++ b/Swiften/Examples/SConscript
@@ -0,0 +1,3 @@
+SConscript(dirs = [
+		"SendMessage"
+	])
diff --git a/Swiften/Examples/SendMessage/.gitignore b/Swiften/Examples/SendMessage/.gitignore
new file mode 100644
index 0000000..3b8b4d2
--- /dev/null
+++ b/Swiften/Examples/SendMessage/.gitignore
@@ -0,0 +1 @@
+SendMessage
diff --git a/Swiften/Examples/SendMessage/SConscript b/Swiften/Examples/SendMessage/SConscript
new file mode 100644
index 0000000..0e0197e
--- /dev/null
+++ b/Swiften/Examples/SendMessage/SConscript
@@ -0,0 +1,13 @@
+Import("env")
+
+myenv = env.Clone()
+myenv.MergeFlags(myenv["SWIFTEN_FLAGS"])
+myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])
+myenv.MergeFlags(myenv["LIBIDN_FLAGS"])
+myenv.MergeFlags(myenv["BOOST_FLAGS"])
+myenv.MergeFlags(myenv["SQLITE_FLAGS"])
+myenv.MergeFlags(myenv["ZLIB_FLAGS"])
+myenv.MergeFlags(myenv["OPENSSL_FLAGS"])
+myenv.MergeFlags(myenv.get("LIBXML_FLAGS", ""))
+myenv.MergeFlags(myenv.get("EXPAT_FLAGS", ""))
+tester = myenv.Program("SendMessage", ["SendMessage.cpp"])
diff --git a/Swiften/Examples/SendMessage/SendMessage.cpp b/Swiften/Examples/SendMessage/SendMessage.cpp
new file mode 100644
index 0000000..b7a80dd
--- /dev/null
+++ b/Swiften/Examples/SendMessage/SendMessage.cpp
@@ -0,0 +1,53 @@
+#include <boost/bind.hpp>
+#include <boost/thread.hpp>
+
+#include "Swiften/Client/Client.h"
+#include "Swiften/Network/BoostTimer.h"
+#include "Swiften/EventLoop/MainEventLoop.h"
+#include "Swiften/Client/ClientXMLTracer.h"
+#include "Swiften/EventLoop/SimpleEventLoop.h"
+#include "Swiften/Network/BoostIOServiceThread.h"
+#include "Swiften/Network/MainBoostIOServiceThread.h"
+
+using namespace Swift;
+
+SimpleEventLoop eventLoop;
+
+Client* client = 0;
+JID recipient;
+std::string messageBody;
+
+void handleConnected() {
+	boost::shared_ptr<Message> message(new Message());
+	message->setBody(messageBody);
+	message->setTo(recipient);
+	client->sendMessage(message);
+	client->disconnect();
+	eventLoop.stop();
+}
+
+int main(int argc, char* argv[]) {
+	if (argc != 5) {
+		std::cerr << "Usage: " << argv[0] << " <jid> <password> <recipient> <message>" << std::endl;
+		return -1;
+	}
+
+	recipient = JID(argv[3]);
+	messageBody = std::string(argv[4]);
+
+	client = new Swift::Client(JID(argv[1]), String(argv[2]));
+	ClientXMLTracer* tracer = new ClientXMLTracer(client);
+	client->onConnected.connect(&handleConnected);
+	client->connect();
+
+	{
+		boost::shared_ptr<BoostTimer> timer(new BoostTimer(30000, &MainBoostIOServiceThread::getInstance().getIOService()));
+		timer->onTick.connect(boost::bind(&SimpleEventLoop::stop, &eventLoop));
+		timer->start();
+
+		eventLoop.run();
+	}
+
+	delete tracer;
+	delete client;
+}
diff --git a/Swiften/SConscript b/Swiften/SConscript
index 6e837e8..f8e98de 100644
--- a/Swiften/SConscript
+++ b/Swiften/SConscript
@@ -107,6 +107,9 @@ SConscript(dirs = [
 SConscript(test_only = True, dirs = [
 		"QA",
   ])
+SConscript(dirs = [
+		"Examples"
+	])
 
 myenv.StaticLibrary("Swiften", sources + swiften_env["SWIFTEN_OBJECTS"])
 
-- 
cgit v0.10.2-6-g49f6