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));
        }
Example #2
0
        public SbModule GetModuleAtIndex(int index)
        {
            var request = new GetModuleAtIndexRequest()
            {
                Target = grpcSbTarget,
                Index  = index,
            };
            GetModuleAtIndexResponse response = null;

            if (connection.InvokeRpc(() =>
            {
                response = client.GetModuleAtIndex(request);
            }))
            {
                if (response.Module != null && response.Module.Id != 0)
                {
                    return(moduleFactory.Create(connection, response.Module));
                }
            }
            return(null);
        }