diff options
Diffstat (limited to 'Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp')
-rw-r--r-- | Documentation/SwiftenDevelopersGuide/Examples/EchoBot/EchoBot0x.cpp | 38 |
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; +} |