97 : gateway_(licenseStores, port, host.c_str(), std::chrono::seconds{10}, std::chrono::seconds{10})
98 , clientMessageListener_(std::move(clientMessageListener))
99 {
100 std::promise<void> emulatorTaskPromise;
101 emulatorTaskDone_ = emulatorTaskPromise.get_future();
102
103 std::thread(
104 std::bind(
105 [&](std::promise<void>& p)
106 {
107 try
108 {
109 gateway_.run(*clientMessageListener_, &stopRequested_);
110 p.set_value();
111 }
112 catch (const std::exception& ex)
113 {
114 std::cerr << "Exception in Emulator's thread: " << ex.what() << '.' << std::endl;
115 p.set_exception(std::current_exception());
116 }
117 catch (...)
118 {
119 std::cerr << "UNKNOWN Exception in Emulator's thread." << std::endl;
120 p.set_exception(std::current_exception());
121 }
122 },
123 std::move(emulatorTaskPromise)))
124 .detach();
125 }