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