bool SessionInitializer::setUpNightmare(qi::SessionPtr session, const std::string &serviceDirectoryUrl) { std::string serviceName; // #1 Connect session to service directory. if(session->connect(serviceDirectoryUrl).wait(1000) != qi::FutureState_FinishedWithValue) return false; // #1.1 If session is a client session, that's it. if (_listen == false) return true; // #1.2 Make session listen. session->listen("tcp://0.0.0.0:0"); // #2 Allocate population and traffic tools. _populationGenerator = new PopulationGenerator(); _trafficGenerator = new TrafficGenerator(); // #3 Generate an unique name for hidder service if (DefaultService::generateUniqueServiceName(serviceName) == false) throw TestSessionError("[Internal] Cannot generate unique service name."); // #4 Register hidden service. session->registerService(serviceName, DefaultService::getDefaultService()); // #5 Populate with client session and generate traffic. if (_populationGenerator->populateClients(serviceDirectoryUrl, 10000) == false) return false; if (_trafficGenerator->generateCommonTraffic(_populationGenerator->clientPopulation(), serviceName) == false) return false; return true; }
void alternateModule(qi::SessionPtr session) { while (!boost::this_thread::interruption_requested()) { boost::this_thread::interruption_point(); //a--; qi::AnyObject obj = newObject(); qi::Future<unsigned int> fut = session->registerService("TestToto", obj); if (fut.hasError()) { std::cout << "Error registering service: " << fut.error() << std::endl; continue; } std::cout << "Service TestToto registered" << std::endl; qi::os::msleep(50); qi::Future<void> futun = session->unregisterService(fut.value()); if (futun.hasError()) { std::cout << "Error unregistering service: " << futun.error() << std::endl; continue; } std::cout << "Service TestToto unregistered" << std::endl; } }