public override Task <LoadCoreResponse> LoadCore(LoadCoreRequest request,
                                                         ServerCallContext context)
        {
            RemoteTarget target   = GrpcLookupUtils.GetTarget(request.Target, _targetStore);
            SbProcess    process  = target.LoadCore(request.CorePath);
            var          response = new LoadCoreResponse();

            if (process != null)
            {
                if (!_processStore.TryAdd(process.GetUniqueId(), process))
                {
                    ErrorUtils.ThrowError(StatusCode.Internal, "Could not add process to store: " +
                                          process.GetUniqueId());
                }
                response.Process = new GrpcSbProcess {
                    Id = process.GetUniqueId()
                };
            }
            return(Task.FromResult(response));
        }
Example #2
0
        // <summary>
        // |coreFile| should be a path to core file on the local machine.
        // </summary>
        public SbProcess LoadCore(string coreFile)
        {
            LoadCoreResponse response = null;

            if (connection.InvokeRpc(() =>
            {
                response = client.LoadCore(new LoadCoreRequest
                {
                    Target = grpcSbTarget,
                    CorePath = coreFile
                });
            }))
            {
                if (response.Process != null)
                {
                    return(processFactory.Create(connection, response.Process));
                }
            }
            return(null);
        }