Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

ConsoleReaderOutputStream

public class ConsoleReaderOutputStream
extends Object

java.lang.Object
com.android.tradefed.log.ConsoleReaderOutputStream


Un OutputStream que se puede usar para hacer que System.out.print() ConsoleReader bien con el búfer ConsoleReader del usuario.

En las pruebas de rendimiento triviales, esta clase no tuvo un impacto de rendimiento medible.

Resumen

Constructores públicos

ConsoleReaderOutputStream (ConsoleReader reader)

Métodos públicos

void flush ()

ConsoleReader getConsoleReader ()

Obtenga la instancia de ConsoleReader que estamos usando internamente

void setAsyncMode ()

Configure el modo asincrónico.

void setSyncMode ()

Configure el modo síncrono.

void write (byte[] b, int off, int len)

Una implementación especial para mantener visible el búfer de comandos del usuario cuando las tareas asincrónicas escriben en stdout.

void write (int b)

Constructores públicos

ConsoleReaderOutputStream

public ConsoleReaderOutputStream (ConsoleReader reader)

Parámetros
reader ConsoleReader

Métodos públicos

enjuagar

public void flush ()

getConsoleReader

public ConsoleReader getConsoleReader ()

Obtenga la instancia de ConsoleReader que estamos usando internamente

Devoluciones
ConsoleReader

setAsyncMode

public void setAsyncMode ()

Configure el modo asincrónico. Esto ocurre inmediatamente después de que mostramos el símbolo del sistema y comenzamos a esperar la entrada del usuario. En este modo, se garantiza que la línea más reciente en la pantalla será el símbolo del sistema. En particular, las tareas asincrónicas pueden intentar imprimir en la pantalla, y cambiaremos el mensaje cuando lo hagan.

setSyncMode

public void setSyncMode ()

Configure el modo síncrono. Esto ocurre después de que el usuario ha realizado alguna acción, de modo que se garantiza que la línea más reciente en la pantalla _no_ sea el símbolo del sistema. En este caso, deshabilitamos el comportamiento de reproducción aleatoria de solicitudes (que requiere que la línea más reciente en la pantalla sea la solicitud)

escribir

public void write (byte[] b, 
                int off, 
                int len)

Una implementación especial para mantener visible el búfer de comandos del usuario cuando las tareas asincrónicas escriben en stdout.

Si se detecta una escritura de línea completa (una que termina con "\ n"), nosotros:

  1. Limpiar la línea actual (que contendrá el mensaje y el búfer del usuario
  2. Imprima la (s) línea (s) completa (s), lo que nos llevará a una nueva línea
  3. Vuelva a dibujar el indicador y el búfer del usuario

Al hacerlo, nunca omitimos ninguna salida registrada de forma asincrónica, pero seguimos manteniendo el indicador y el búfer del usuario como los últimos elementos en la pantalla.

FIXME: Probablemente deberíamos almacenar en búfer la salida y solo escribir líneas completas en la consola.

Parámetros
b byte

off int

len int

escribir

public void write (int b)

Parámetros
b int