#include #include #include using namespace Swift; using namespace boost; Client* client; static void handleDisconnected(const boost::optional &) { std::cout << "Disconnected..." << std::endl; exit(1); } static void handleConnected() { std::cout << "Connected..." << std::endl; exit(0); } static void handleMessageReceived(Message::ref message) { // Echo back the incoming message message->setTo(message->getFrom()); message->setFrom(JID()); client->sendMessage(message); } int main(int, char **argv) { SimpleEventLoop eventLoop; BoostNetworkFactories networkFactories(&eventLoop); client = new Client(argv[1], argv[2], &networkFactories); client->setAlwaysTrustCertificates(); client->setAllowPLAINOverNonTLS(true); client->onConnected.connect(&handleConnected); client->onDisconnected.connect(bind(&handleDisconnected, _1)); client->onMessageReceived.connect(bind(&handleMessageReceived, _1)); client->connect(); eventLoop.run(); delete client; return 0; }