summaryrefslogtreecommitdiff
path: root/cpp/demo/Ice/winrt/hello/MainPage.xaml.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/demo/Ice/winrt/hello/MainPage.xaml.cpp')
-rw-r--r--cpp/demo/Ice/winrt/hello/MainPage.xaml.cpp50
1 files changed, 46 insertions, 4 deletions
diff --git a/cpp/demo/Ice/winrt/hello/MainPage.xaml.cpp b/cpp/demo/Ice/winrt/hello/MainPage.xaml.cpp
index e33b0369d64..0156dfba8b2 100644
--- a/cpp/demo/Ice/winrt/hello/MainPage.xaml.cpp
+++ b/cpp/demo/Ice/winrt/hello/MainPage.xaml.cpp
@@ -31,6 +31,8 @@ MainPage::MainPage()
InitializeComponent();
mode->SelectedIndex = 0;
Ice::InitializationData id;
+ id.properties = Ice::createProperties();
+ id.properties->setProperty("Ice.Plugin.IceDiscovery", "1"); // Enable the IceDiscovery plugin
id.dispatcher = Ice::newDispatcher(
[=](const Ice::DispatcherCallPtr& call, const Ice::ConnectionPtr&)
{
@@ -53,14 +55,23 @@ hello::MainPage::updateProxy()
}
string h = IceUtil::wstringToString(hostname->Text->Data());
- if (h.empty())
+ if (h.empty() && !useDiscovery->IsChecked->Value)
{
print("Host is empty.");
_helloPrx = 0;
return;
}
- Ice::ObjectPrx prx = _communicator->stringToProxy("hello:tcp -h " + h + " -p 10000:ssl -h " + h +
- " -p 10001:udp -h " + h + " -p 10000");
+ Ice::ObjectPrx prx;
+ if (useDiscovery->IsChecked->Value)
+ {
+ prx = _communicator->stringToProxy("hello");
+ }
+ else
+ {
+ prx = _communicator->stringToProxy("hello:tcp -h " + h + " -p 10000:ssl -h " + h +
+ " -p 10001:udp -h " + h + " -p 10000");
+ }
+
switch(mode->SelectedIndex)
{
case 0:
@@ -156,6 +167,20 @@ hello::MainPage::hello_Click(Platform::Object^ sender, Windows::UI::Xaml::Routed
},
[=](bool sentSynchronously)
{
+ if(_helloPrx)
+ {
+ Ice::ConnectionPtr con = _helloPrx->ice_getCachedConnection();
+ if(con)
+ {
+ Ice::IPConnectionInfoPtr info =
+ Ice::IPConnectionInfoPtr::dynamicCast(con->getInfo());
+ if(info)
+ {
+ hostname->Text = ref new String(
+ IceUtil::stringToWstring(info->remoteAddress).c_str());
+ }
+ }
+ }
if(this->_response)
{
return; // Response was received already.
@@ -276,7 +301,7 @@ MainPage::timeout_ValueChanged(Platform::Object^ sender, Windows::UI::Xaml::Cont
void
MainPage::hostname_TextChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::TextChangedEventArgs^ e)
{
- if (hostname->Text->Length() == 0)
+ if (hostname->Text->Length() == 0 && !useDiscovery->IsChecked->Value)
{
hello->IsEnabled = false;
shutdown->IsEnabled = false;
@@ -291,8 +316,25 @@ MainPage::hostname_TextChanged(Platform::Object^ sender, Windows::UI::Xaml::Cont
updateProxy();
}
+void hello::MainPage::useDiscovery_Changed(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
+{
+ if (useDiscovery->IsChecked->Value)
+ {
+ hostname->Text = "";
+ hostname->IsEnabled = false;
+ }
+ else
+ {
+ hostname->Text = "127.0.0.1";
+ hostname->IsEnabled = true;
+ }
+ updateProxy();
+}
+
void
MainPage::print(const std::string& message)
{
output->Text = ref new String(IceUtil::stringToWstring(message).c_str());
}
+
+