diff options
| -rw-r--r-- | Swiften/Examples/SConscript | 3 | ||||
| -rw-r--r-- | Swiften/Examples/SendMessage/.gitignore | 1 | ||||
| -rw-r--r-- | Swiften/Examples/SendMessage/SConscript | 13 | ||||
| -rw-r--r-- | Swiften/Examples/SendMessage/SendMessage.cpp | 53 | ||||
| -rw-r--r-- | Swiften/SConscript | 3 | 
5 files changed, 73 insertions, 0 deletions
| 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"]) | 
 Swift
 Swift