示例#1
0
        public override Task <GetModuleResponse> GetModule(GetModuleRequest request,
                                                           ServerCallContext context)
        {
            RemoteFrame frame  = frameStore.GetObject(request.Frame.Id);
            SbModule    module = frame.GetModule();

            GetModuleResponse response = new GetModuleResponse();

            if (module != null)
            {
                response.Module = new GrpcSbModule {
                    Id = moduleStore.AddObject(module)
                };
            }
            return(Task.FromResult(response));
        }
        public override Task <GetModuleAtIndexResponse> GetModuleAtIndex(
            GetModuleAtIndexRequest request, ServerCallContext context)
        {
            if (!_targetStore.TryGetValue(request.Target.Id, out RemoteTarget target))
            {
                ErrorUtils.ThrowError(StatusCode.Internal,
                                      "Could not find target in store: " + request.Target.Id);
            }

            var      response = new GetModuleAtIndexResponse();
            SbModule module   = target.GetModuleAtIndex(request.Index);

            if (module != null)
            {
                response.Module = new GrpcSbModule {
                    Id = _moduleStore.AddObject(module)
                };
            }
            return(Task.FromResult(response));
        }
示例#3
0
        public override Task <GetFramesWithInfoResponse> GetFramesWithInfo(
            GetFramesWithInfoRequest request, ServerCallContext context)
        {
            var thread         = threadStore.GetObject(request.Thread.Id);
            var framesWithInfo = thread.GetFramesWithInfo((FrameInfoFlags)request.Fields,
                                                          request.StartIndex, request.MaxCount);
            var response = new GetFramesWithInfoResponse();

            foreach (var frameWithInfo in framesWithInfo)
            {
                var grpcFrameWithInfo = new GrpcFrameWithInfo();
                grpcFrameWithInfo.Frame = CreateGrpcSbFrame(frameWithInfo.Frame);
                FrameInfo <SbModule> info = frameWithInfo.Info;
                long?moduleId             = info.Module != null?
                                            moduleStore.AddObject(info.Module) : (long?)null;

                grpcFrameWithInfo.Info = GrpcFactoryUtils.CreateFrameInfo(info, moduleId);
                response.FramesWithInfo.Add(grpcFrameWithInfo);
            }
            return(Task.FromResult(response));
        }