diff options
Diffstat (limited to 'cpp/test/uwp/controller/ViewController.xaml.cpp')
-rw-r--r-- | cpp/test/uwp/controller/ViewController.xaml.cpp | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/cpp/test/uwp/controller/ViewController.xaml.cpp b/cpp/test/uwp/controller/ViewController.xaml.cpp index da938e00798..b1c8d682e54 100644 --- a/cpp/test/uwp/controller/ViewController.xaml.cpp +++ b/cpp/test/uwp/controller/ViewController.xaml.cpp @@ -101,14 +101,14 @@ class ProcessControllerI : public ProcessController { public: - ProcessControllerI(ViewController^, string); - virtual shared_ptr<ProcessPrx> start(string, string, StringSeq, const Ice::Current&); + ProcessControllerI(ViewController^); + shared_ptr<ProcessPrx> start(string, string, StringSeq, const Ice::Current&); virtual string getHost(string, bool, const Ice::Current&); private: ViewController^ _controller; - string _hostname; + string _host; }; class ControllerHelper @@ -315,9 +315,9 @@ ProcessI::terminate(const Ice::Current& current) return _helper->getOutput(); } -ProcessControllerI::ProcessControllerI(ViewController^ controller, string hostname) : +ProcessControllerI::ProcessControllerI(ViewController^ controller) : _controller(controller), - _hostname(hostname) + _host(_controller->getHost()) { } @@ -337,7 +337,7 @@ ProcessControllerI::start(string testSuite, string exe, StringSeq args, const Ic string ProcessControllerI::getHost(string, bool, const Ice::Current&) { - return _hostname; + return _host; } ControllerHelper::ControllerHelper(ViewController^ controller) @@ -357,8 +357,8 @@ ControllerHelper::ControllerHelper(ViewController^ controller) _communicator->stringToProxy("Util/ProcessControllerRegistry:tcp -h 127.0.0.1 -p 15001")); Ice::ObjectAdapterPtr adapter = _communicator->createObjectAdapterWithEndpoints("ControllerAdapter", ""); Ice::Identity ident = { "ProcessController", "UWP"}; - auto processController = Ice::uncheckedCast<ProcessControllerPrx>( - adapter->add(make_shared<ProcessControllerI>(controller, "127.0.0.1"), ident)); + auto processController = + Ice::uncheckedCast<ProcessControllerPrx>(adapter->add(make_shared<ProcessControllerI>(controller), ident)); adapter->activate(); registerProcessController(controller, adapter, registry, processController); @@ -390,6 +390,9 @@ ControllerHelper::registerProcessController(ViewController^ controller, { rethrow_exception(e); } + catch(const Ice::CommunicatorDestroyedException&) + { + } catch(const std::exception& ex) { ostringstream os; @@ -409,6 +412,14 @@ ControllerHelper::registerProcessController(ViewController^ controller, std::this_thread::sleep_for(2s); registerProcessController(controller, adapter, registry, processController); } + catch(const Ice::TimeoutException&) + { + std::this_thread::sleep_for(2s); + registerProcessController(controller, adapter, registry, processController); + } + catch(const Ice::CommunicatorDestroyedException&) + { + } catch(const std::exception& ex) { ostringstream os; @@ -428,6 +439,23 @@ static ControllerHelper* controllerHelper = 0; ViewController::ViewController() { InitializeComponent(); + auto hostnames = NetworkInformation::GetHostNames(); + ipv4Addresses->Items->Append("127.0.0.1"); + for(unsigned int i = 0; i < hostnames->Size; ++i) + { + auto hostname = hostnames->GetAt(i); + if(hostname->Type == Windows::Networking::HostNameType::Ipv4) + { + ipv4Addresses->Items->Append(hostname->RawName); + } + } + ipv4Addresses->SelectedIndex = 0; +} + +string +ViewController::getHost() const +{ + return Ice::wstringToString(ipv4Addresses->SelectedItem->ToString()->Data()); } void @@ -442,6 +470,17 @@ ViewController::OnNavigatedTo(NavigationEventArgs^) } void +ViewController::Hostname_SelectionChanged(Platform::Object^, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^) +{ + if(controllerHelper) + { + delete controllerHelper; + controllerHelper = 0; + } + controllerHelper = new ControllerHelper(this); +} + +void ViewController::println(const string& s) { this->Dispatcher->RunAsync(CoreDispatcherPriority::Normal, ref new DispatchedHandler( |