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}"); } }
internal RouteGuideUnityClient(string host, string port, RouteGuideUIHandler inRouteGuideUIHandler) { _server = host + ":" + port; _channel = new Channel(_server, ChannelCredentials.Insecure); _client = new RouteGuide.RouteGuideClient(_channel); _myRouteGuideUiHandler = inRouteGuideUIHandler; }
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}"); } } }
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}"); } }
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"); } }
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}"); } } }
public RouteGuideClient(RouteGuide.RouteGuideClient client) { this.client = client; }