Ejemplo n.º 1
0
		private void Dispatch(string body)
		{
			var requestOrResponse = JsonConvert.DeserializeObject<dynamic>(body);
			if (requestOrResponse != null) {
				if (requestOrResponse.type == "response") {
					var response = new V8Response(requestOrResponse);
					//var response = JsonConvert.DeserializeObject<V8Response>(body);
					int seq = response.request_seq;
					lock (_pendingRequests) {
						if (_inTimeoutMode) {
							_inTimeoutMode = false;
							Callback.Invoke(new V8Event("diagnostic", new { reason = "responsive" }));
						}
						if (_pendingRequests.ContainsKey(seq)) {
							var tcs = _pendingRequests[seq];
							_pendingRequests.Remove(seq);
							tcs.SetResult(response);
						}
					}
				}
				else if (requestOrResponse.type == "event") {
					if (Callback != null) {
						var ev = new V8Event(requestOrResponse);
						//var ev = JsonConvert.DeserializeObject<V8Event>(body);
						Callback.Invoke(ev);
					}
				}
			}
		}
		void HandleReponse(V8Response response)
		{
			if (response.success == false)
				requestException = new BadRequest (response.message);

			// Signal that a response has been processsed
			var requestEvent = requestEvents [response.request_seq];
			requestEvents.Remove (response.request_seq);
			requestEvent.Set ();
		}
Ejemplo n.º 3
0
		private void Dispatch(string req)
		{
			var request = JsonConvert.DeserializeObject<V8Request>(req);
			if (request != null && request.type == "request") {
				if (TRACE)
					Console.Error.WriteLine(string.Format("C {0}: {1}", request.command, JsonConvert.SerializeObject(request.arguments)));

				if (_callback != null) {
					var response = new V8Response(request.seq, request.command);

					_callback.Invoke(request.command, request.arguments, response);

					SendMessage(response);
				}
			}
		}