public override Task <HandleCommandResponse> HandleCommand(HandleCommandRequest request,
                                                                   ServerCallContext context)
        {
            var interpreter = interpreterStore.GetObject(request.Interpreter.Id);
            var response    = new HandleCommandResponse();

            SbCommandReturnObject returnObject;

            response.ReturnStatus = interpreter.HandleCommand(request.Command,
                                                              out returnObject).ConvertTo <Debugger.Common.ReturnStatus>();
            if (returnObject != null)
            {
                response.ReturnObject = new Debugger.Common.GrpcSbCommandReturnObject
                {
                    Id = returnObjectStore.AddObject(returnObject)
                };
            }
            return(Task.FromResult(response));
        }
        public ReturnStatus HandleCommand(string command, out SbCommandReturnObject result)
        {
            result = null;

            HandleCommandResponse response = null;

            if (connection.InvokeRpc(() =>
            {
                response = client.HandleCommand(
                    new HandleCommandRequest {
                    Command = command,
                    Interpreter = grpcSbInterpreter
                });
            }))
            {
                if (response.ReturnObject != null && response.ReturnObject.Id != 0)
                {
                    result = returnObjectFactory.Create(connection, response.ReturnObject);
                    return(response.ReturnStatus.ConvertTo <ReturnStatus>());
                }
            }

            return(ReturnStatus.Invalid);
        }