Android-cuttlefish cvd tool
Public Member Functions | Private Member Functions | Private Attributes | List of all members
cuttlefish::LogMonitorDisplay Class Reference

#include <display.h>

Public Member Functions

 LogMonitorDisplay (size_t width)
 
void DrawReport (MonitorSource *, size_t lines)
 
void DrawReport (MonitorOutput, size_t lines)
 
LogMonitorDisplayResult Finalize ()
 

Private Member Functions

void DrawBorderedText (const MonitorOutput &)
 
void FormatAndDrawLine (std::string_view formatted)
 

Private Attributes

size_t width_
 
std::stringstream ss_
 
int total_lines_drawn_
 
bool colorize_
 

Detailed Description

LogMonitorDisplay formats and accumulates multiple log streams into a structured, bordered terminal display. It supports drawing boxes around log content, truncating long lines while preserving ANSI colors, and optionally stripping colors if the output terminal doesn't support them.

Example usage:

LogMonitorDisplay display(80); // 80 columns wide
display.DrawReport(launcher_source, 20);
display.DrawReport(kernel_source, 40);
LogMonitorDisplayResult result = display.Finalize();
std::cout << result.output << std::flush;
Definition: display.h:53
Definition: display.h:31
std::string output
Definition: display.h:33

Constructor & Destructor Documentation

◆ LogMonitorDisplay()

cuttlefish::LogMonitorDisplay::LogMonitorDisplay ( size_t  width)

Initializes the display with a fixed character width.

Member Function Documentation

◆ DrawBorderedText()

void cuttlefish::LogMonitorDisplay::DrawBorderedText ( const MonitorOutput output)
private

Helper to draw a list of text lines inside a bordered box with a title.

◆ DrawReport() [1/2]

void cuttlefish::LogMonitorDisplay::DrawReport ( MonitorOutput  output,
size_t  lines 
)

◆ DrawReport() [2/2]

void cuttlefish::LogMonitorDisplay::DrawReport ( MonitorSource source,
size_t  lines 
)

◆ Finalize()

LogMonitorDisplayResult cuttlefish::LogMonitorDisplay::Finalize ( )

Appends the final bottom border to the display and returns the complete accumulated string and total line count.

◆ FormatAndDrawLine()

void cuttlefish::LogMonitorDisplay::FormatAndDrawLine ( std::string_view  formatted)
private

Formats a single line of text: parses it for specific log types (like logcat, kernel), applies color formatting, truncates to fit the display width, pads with spaces, and adds borders.

Member Data Documentation

◆ colorize_

bool cuttlefish::LogMonitorDisplay::colorize_
private

◆ ss_

std::stringstream cuttlefish::LogMonitorDisplay::ss_
private

◆ total_lines_drawn_

int cuttlefish::LogMonitorDisplay::total_lines_drawn_
private

◆ width_

size_t cuttlefish::LogMonitorDisplay::width_
private

The documentation for this class was generated from the following files: