From 6a931dc727a5581966425f9ec5d2ce5ddbbfe11a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Fri, 4 Feb 2011 15:24:19 +0100
Subject: Added C++0x version of EchoBot.


diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp
new file mode 100644
index 0000000..68affc3
--- /dev/null
+++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#include <Swiften/Swiften.h>
+
+using namespace Swift;
+
+int main(int, char**) {
+	// Set up the event loop and network classes
+	SimpleEventLoop eventLoop;
+	BoostNetworkFactories networkFactories(&eventLoop);
+
+	// Initialize the client with the JID and password
+	Client client(
+		JID("echobot@wonderland.lit"), "mypass", &networkFactories);
+
+	// When the client is convnected, send out initial presence
+	client.onConnected.connect([&] {
+		client.sendPresence(Presence::create("Send me a message"));
+	});
+
+	// When the client receives an incoming message, echo it back
+	client.onMessageReceived.connect([&] (Message::ref message) {
+		message->setTo(message->getFrom());
+		message->setFrom(JID());
+		client.sendMessage(message);
+	});
+
+	// Start the client
+	client.connect();
+
+	// Run the event loop to start processing incoming network events
+	eventLoop.run();
+	return 0;
+}
diff --git a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript
index ca9ce62..036b29d 100644
--- a/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript
+++ b/Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript
@@ -6,5 +6,18 @@ example_env.MergeFlags(example_env["SWIFTEN_DEP_FLAGS"])
 
 for i in range(1,7) :
 	example_env.Program("EchoBot" + str(i), ["EchoBot" + str(i) + ".cpp"])
-#example_env.Program("EchoBot0x", "EchoBot0x.cpp")
 example_env.Program("EchoComponent", "EchoComponent.cpp")
+
+# C++0x
+cpp0x = False
+cpp0x_env = example_env.Clone()
+if env["PLATFORM"] == "win32" :
+	if int(env["MSVS_VERSION"].split(".")[0]) >= 10 :
+		cpp0x = True
+else :
+	if env["CCVERSION"].split(".") >= ["4", "5", "0"] :
+		cpp0x = True
+		cpp0x_env.Replace(CXXFLAGS = [flag for flag in env["CXXFLAGS"] if flag != "-Werror"])
+		cpp0x_env.Append(CXXFLAGS = ["-std=c++0x"])
+if cpp0x :
+	cpp0x_env.Program("EchoBot0x", "EchoBot0x.cpp")
-- 
cgit v0.10.2-6-g49f6