private void Dispatch()

in src/csharp/Protocol.cs [213:246]


		private void Dispatch(string req)
		{
			var message = JsonConvert.DeserializeObject<ProtocolMessage>(req);
			if (message != null) {
				switch (message.type) {

				case "request":
					{
						var request = JsonConvert.DeserializeObject<Request>(req);

						Program.Log(TRACE, "C {0}: {1}", request.command, JsonConvert.SerializeObject(request.arguments, Formatting.Indented));

						var response = new Response(request);
						DispatchRequest(request.command, request.arguments, response);
						SendMessage(response);
					}
					break;

				case "response":
					{
						var response = JsonConvert.DeserializeObject<Response>(req);
						int seq = response.request_seq;
						lock (_pendingRequests) {
							if (_pendingRequests.ContainsKey(seq)) {
								var tcs = _pendingRequests[seq];
								_pendingRequests.Remove(seq);
								tcs.SetResult(response);
							}
						}
					}
					break;
				}
			}
		}