/* * Copyright (c) 2010-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include #include #include #include #include #include #include #include #include #include #include #include using namespace Swift; static SimpleEventLoop eventLoop; static BoostNetworkFactories networkFactories(&eventLoop); static int numberOfConnectedClients = 0; static int numberOfInstances = 100; static void handleConnected() { numberOfConnectedClients++; std::cout << "Connected " << numberOfConnectedClients << std::endl; } int main(int, char**) { char* jid = getenv("SWIFT_BENCHTOOL_JID"); if (!jid) { std::cerr << "Please set the SWIFT_BENCHTOOL_JID environment variable" << std::endl; return -1; } char* pass = getenv("SWIFT_BENCHTOOL_PASS"); if (!pass) { std::cerr << "Please set the SWIFT_BENCHTOOL_PASS environment variable" << std::endl; return -1; } BlindCertificateTrustChecker trustChecker; std::vector clients; for (int i = 0; i < numberOfInstances; ++i) { CoreClient* client = new Swift::CoreClient(JID(jid), createSafeByteArray(std::string(pass)), &networkFactories); client->setCertificateTrustChecker(&trustChecker); client->onConnected.connect(&handleConnected); clients.push_back(client); } for (auto& client : clients) { client->connect(); } eventLoop.run(); for (auto& client : clients) { delete client; } return 0; }