summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp')
-rw-r--r--Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp38
1 files changed, 38 insertions, 0 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;
+}