Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

ConsoleReaderOutputStream

public class ConsoleReaderOutputStream
extends Object

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


Un OutputStream che può essere utilizzato per far funzionare System.out.print() piacevole con il buffer ConsoleReader dell'utente.

In banali test sulle prestazioni, questa classe non ha avuto un impatto misurabile sulle prestazioni.

Sommario

Costruttori pubblici

ConsoleReaderOutputStream (ConsoleReader reader)

Metodi pubblici

void flush ()

ConsoleReader getConsoleReader ()

Ottieni l'istanza ConsoleReader che stiamo utilizzando internamente

void setAsyncMode ()

Imposta la modalità asincrona.

void setSyncMode ()

Imposta la modalità sincrona.

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

Un'implementazione speciale per mantenere visibile il buffer dei comandi dell'utente quando le attività asincrone scrivono su stdout.

void write (int b)

Costruttori pubblici

ConsoleReaderOutputStream

public ConsoleReaderOutputStream (ConsoleReader reader)

parametri
reader ConsoleReader

Metodi pubblici

sciacquone

public void flush ()

getConsoleReader

public ConsoleReader getConsoleReader ()

Ottieni l'istanza ConsoleReader che stiamo utilizzando internamente

ritorna
ConsoleReader

setAsyncMode

public void setAsyncMode ()

Imposta la modalità asincrona. Ciò si verifica immediatamente dopo aver visualizzato il prompt dei comandi e aver iniziato ad attendere l'input dell'utente. In questa modalità, la riga più recente sullo schermo è garantita come prompt dei comandi. In particolare, le attività asincrone potrebbero tentare di stampare sullo schermo e, quando lo faremo, rimescoleremo il messaggio.

setSyncMode

public void setSyncMode ()

Imposta la modalità sincrona. Ciò si verifica dopo che l'utente ha intrapreso alcune azioni, in modo tale che la riga più recente sullo schermo sia garantita non essere il prompt dei comandi. In questo caso, disabilitiamo il comportamento di prompt shuffle (che richiede che la riga più recente sullo schermo sia il prompt)

Scrivi

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

Un'implementazione speciale per mantenere visibile il buffer dei comandi dell'utente quando le attività asincrone scrivono su stdout.

Se viene rilevata una scrittura a riga intera (che termina con "\ n"), noi:

  1. Cancella la riga corrente (che conterrà il prompt e il buffer dell'utente
  2. Stampa le linee complete, che ci lasceranno cadere su una nuova linea
  3. Ridisegna il prompt e il buffer dell'utente

In questo modo, non saltiamo mai alcun output registrato in modo asincrono, ma manteniamo comunque il prompt e il buffer dell'utente come gli ultimi elementi sullo schermo.

FIXME: Probabilmente dovremmo bufferizzare l'output e scrivere solo righe complete sulla console.

parametri
b byte

off int

len int

Scrivi

public void write (int b)

parametri
b int