Beispiel #1
0
        public DebugResponse ReadOneRes()
        {
            DebugResponse res = null;

            try
            {
                string name = _reader.ReadString();
                Type   type = null;
                if (_name_map.TryGetValue(name, out type))
                {
                    res = Activator.CreateInstance(type) as DebugResponse;
                    res.ReadFrom(_reader);
                }
                else
                {
                    throw new Exception("do not recognize " + name);
                }
            }
            catch
            {
                res = null;
                Close();
            }
            return(res);
        }
        public APIGatewayProxyResponse GetUser(
            APIGatewayProxyRequest request, ILambdaContext context)
        {
            var requestJson = JsonConvert.SerializeObject(request);
            var contextJson = JsonConvert.SerializeObject(context);

            Console.WriteLine($"Received request: {requestJson}. Context: {contextJson}");

            var nameParameter = request.QueryStringParameters != null &&
                                request.QueryStringParameters.ContainsKey("name")
                ? request.QueryStringParameters["name"]
                : null;

            if (nameParameter == null)
            {
                return(CreateResponse(new UserResponse
                {
                    Name = "Minh Nguyen",
                    Token = "1234-455662-22233333-3333"
                }));
            }

            if (nameParameter == "debug")
            {
                var debugResponse = new DebugResponse("Your function executed successfully!", request);

                return(CreateResponse(debugResponse));
            }

            return(CreateResponse(new UserResponse
            {
                Name = nameParameter,
                Token = "1234-455662-22233333-3333"
            }));
        }
Beispiel #3
0
 public void WriteRes(DebugResponse res)
 {
     if (_stream != null)
     {
         _stream.WriteRes(res);
     }
 }
Beispiel #4
0
        private DebugResponse InterpretCommand(string command)
        {
            string[] args = command.Split(' ');
            switch (args [0])
            {
            case "s":
            case "step":
                return(Step());

            case "d":
            case "down":
                return(Down());

            case "n":
            case "next":
                return(Next());

            case "c":
            case "continue":
                DebugResponse resp = new DebugResponse(
                    virtualMachine.Top.Location,
                    virtualMachine.Top
                    );
                virtualMachine.SetTrace(null);

                virtualMachine.ContinueExecution();
                return(resp);
            }
            return(null);
        }
Beispiel #5
0
 public void WriteRes(DebugResponse res)
 {
     try
     {
         _writer.Write(res.GetType().Name);
         res.WriteTo(_writer);
     }
     catch
     {
         Close();
     }
 }
Beispiel #6
0
		private void SendResponse (DebugResponse response)
		{
			if (!fileCache.ContainsKey (response.Location.File)) {
				fileCache [response.Location.File] = File.ReadAllLines (response.Location.File);
			}

			StringBuilder sb = new StringBuilder ();
			sb.AppendFormat ("Line:{0};", response.Location.Line);
			sb.AppendFormat ("File:{0}", response.Location.File);
			sb.AppendFormat ("!{0}", fileCache [response.Location.File] [response.Location.Line - 1]);
			responseStream.WriteLine (sb.ToString ());
			responseStream.Flush ();
		}
Beispiel #7
0
        private void SendResponse(DebugResponse response)
        {
            if (!fileCache.ContainsKey(response.Location.File))
            {
                fileCache [response.Location.File] = File.ReadAllLines(response.Location.File);
            }

            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("Line:{0};", response.Location.Line);
            sb.AppendFormat("File:{0}", response.Location.File);
            sb.AppendFormat("!{0}", fileCache [response.Location.File] [response.Location.Line - 1]);
            responseStream.WriteLine(sb.ToString());
            responseStream.Flush();
        }
Beispiel #8
0
        private DebugResponse Down()
        {
            ManualResetEvent done         = new ManualResetEvent(false);
            DebugResponse    response     = null;
            StackFrame       currentFrame = virtualMachine.Top;

            virtualMachine.SetTrace(((TraceType type,
                                      VirtualMachine vm,
                                      StackFrame frame,
                                      SourceLocation location) => {
                if (type == TraceType.Line && frame.Parent == currentFrame)
                {
                    response = new DebugResponse(location, frame);
                    done.Set();
                    return(true);
                }
                return(false);
            }));
            virtualMachine.ContinueExecution();
            done.WaitOne();
            return(response);
        }
Beispiel #9
0
        private void ProcessDebugMessageResponse(byte[] packet)
        {
            string message = new DebugResponse(packet).GetDebugMessage();

            DebugMessageReceived?.Invoke(message);
        }
Beispiel #10
0
		private DebugResponse Down ()
		{
			ManualResetEvent done = new ManualResetEvent (false);
			DebugResponse response = null;
			StackFrame currentFrame = virtualMachine.Top;
			virtualMachine.SetTrace (((TraceType type,
				VirtualMachine vm,
				StackFrame frame,
				SourceLocation location) =>  {
				if (type == TraceType.Line && frame.Parent == currentFrame) {
					response = new DebugResponse (location, frame);
					done.Set ();
					return true;
				}
				return false;
			}));
			virtualMachine.ContinueExecution ();
			done.WaitOne ();
			return response;
		}
Beispiel #11
0
 public void WriteRes(DebugResponse res)
 {
     Console.WriteLine(res.ToResString());
 }
Beispiel #12
0
 public void SendResponse(DebugResponse response)
 {
     _pipe_server.WriteRes(response);
 }