summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-02-04 14:24:19 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-02-04 14:24:19 (GMT)
commit6a931dc727a5581966425f9ec5d2ce5ddbbfe11a (patch)
tree89eff81a481825f086508e99a1cca2ab57d4f334 /Documentation/SwiftenDevelopersGuide/Examples/EchoBot
parente9939e9958b0dae2dc6d2211b52dca5058869418 (diff)
downloadswift-6a931dc727a5581966425f9ec5d2ce5ddbbfe11a.zip
swift-6a931dc727a5581966425f9ec5d2ce5ddbbfe11a.tar.bz2
Added C++0x version of EchoBot.
Diffstat (limited to 'Documentation/SwiftenDevelopersGuide/Examples/EchoBot')
-rw-r--r--Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp38
-rw-r--r--Documentation/SwiftenDevelopersGuide/Examples/EchoBot/SConscript15
2 files changed, 52 insertions, 1 deletions
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")