Ejemplo n.º 1
0
        private static async Task TestRecordRouteAsync(Channel channel, int deltaLatitude = 5, int deltaLongitude = 5, CancellationToken cancellationToken = default)
        {
            var       client    = new RouteGuide.RouteGuideClient(channel);
            const int longitude = 34;
            const int latitude  = 1;

            //var tasks = new List<Task>(deltaLatitude * deltaLongitude);
            using (AsyncClientStreamingCall <Point, RouteSummary> input = client.RecordRoute())
            {
                for (int lat = latitude; lat < latitude + deltaLatitude; lat++)
                {
                    for (int lo = longitude; lo < longitude + deltaLongitude; lo++)
                    {
                        Console.WriteLine($"queuing point {lat}:{lo}...");
                        //tasks.Add(input.RequestStream.WriteAsync(new Point() {Latitude = lat, Longitude = lo}));
                        await input.RequestStream.WriteAsync(new Point()
                        {
                            Latitude = lat, Longitude = lo
                        }).ConfigureAwait(false);
                    }
                }
                //await Task.WhenAll(tasks).ConfigureAwait(false);
                Console.WriteLine($"all {deltaLongitude*deltaLatitude} points sent");
                await input.RequestStream.CompleteAsync().ConfigureAwait(false);

                Console.WriteLine("request stream closed");
                RouteSummary summary = await input.ResponseAsync.ConfigureAwait(false);

                Console.WriteLine($"Point count: {summary.PointCount}");
            }
        }
Ejemplo n.º 2
0
 internal RouteGuideUnityClient(string host, string port, RouteGuideUIHandler inRouteGuideUIHandler)
 {
     _server  = host + ":" + port;
     _channel = new Channel(_server, ChannelCredentials.Insecure);
     _client  = new RouteGuide.RouteGuideClient(_channel);
     _myRouteGuideUiHandler = inRouteGuideUIHandler;
 }
Ejemplo n.º 3
0
        private static async Task TestGetFeatureAsync(Channel channel, int latitude, DateTime deadline)
        {
            var client = new RouteGuide.RouteGuideClient(channel);

            using (var request = client.GetFeatureAsync(new Point()
            {
                Latitude = latitude, Longitude = 34
            }, new CallOptions(deadline: deadline)))
            {
                try
                {
                    Metadata headers = await request.ResponseHeadersAsync.ConfigureAwait(false);

                    foreach (Metadata.Entry header in headers)
                    {
                        Console.WriteLine($"[{header.Key}]:{header.Value}");
                    }
                    Feature feature = await request.ResponseAsync.ConfigureAwait(false);

                    Console.WriteLine($"status: {request.GetStatus()}");
                    Console.WriteLine($"feature: {feature.Name}");
                }
                catch (RpcException e)
                {
                    Console.WriteLine($"request status: {request.GetStatus()}");
                    Console.WriteLine($"ex status: {e.Status}");
                }
            }
        }
Ejemplo n.º 4
0
        private static void TestRouteGuide(Channel channel, int latitude, DateTime deadline)
        {
            var client = new RouteGuide.RouteGuideClient(channel);

            try
            {
                Feature feature = client.GetFeature(new Point()
                {
                    Latitude = latitude, Longitude = 34
                }, new CallOptions(deadline: deadline));
                Console.WriteLine($"{feature.Name}");
            }
            catch (RpcException e)
            {
                Console.WriteLine($"ex status: {e.Status}");
            }
        }
Ejemplo n.º 5
0
        public void SetIcpFilter(double filter)
        {
            string strConString;

            strConString = string.Format("{0}:{1}", ReadIniSettings.ReadIni.objIniValue.iniServer.Ip, ReadIniSettings.ReadIni.objIniValue.iniServer.Port);
            Channel channel = new Channel(strConString, ChannelCredentials.Insecure);

            var client = new RouteGuide.RouteGuideClient(channel);

            var reply = client.SetIcpFilter(new IcpFilterRequest {
                Filter = (float)filter
            });

            channel.ShutdownAsync().Wait();

            if (reply.Retsts == false)
            {
                //System.Windows.Forms.MessageBox.Show("rpc return fail");
            }
        }
Ejemplo n.º 6
0
        private static async Task TestListFeaturesAsync(Channel channel, int deltaLatitude = 5, int deltaLongitude = 5, CancellationToken cancellationToken = default)
        {
            var       client    = new RouteGuide.RouteGuideClient(channel);
            const int longitude = 34;
            const int latitude  = 1;

            using (var request = client.ListFeatures(new Rectangle()
            {
                Lo = new Point()
                {
                    Latitude = latitude, Longitude = longitude
                }
                , Hi = new Point()
                {
                    Latitude = latitude + deltaLatitude, Longitude = longitude + deltaLongitude
                }
            }, cancellationToken: cancellationToken))
            {
                try
                {
                    bool hasNext = await request.ResponseStream.MoveNext(cancellationToken).ConfigureAwait(false);

                    while (hasNext)
                    {
                        //Console.WriteLine($"status: {request.GetStatus()}"); status can only be accessed once the call has finished
                        Console.WriteLine(request.ResponseStream.Current.Name);
                        hasNext = await request.ResponseStream.MoveNext(cancellationToken).ConfigureAwait(false);
                    }
                }
                catch (RpcException e)
                {
                    Console.WriteLine($"request status: {request.GetStatus()}");
                    Console.WriteLine($"ex status: {e.Status}");
                }
            }
        }
Ejemplo n.º 7
0
 public RouteGuideClient(RouteGuide.RouteGuideClient client)
 {
     this.client = client;
 }