Ninja
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
StatusPrinter Struct Reference

Implementation of the Status interface that prints the status as human-readable strings to stdout. More...

#include <status.h>

Inheritance diagram for StatusPrinter:
Inheritance graph
[legend]

Classes

struct  SlidingRateInfo
 

Public Member Functions

virtual void BuildEdgeFinished (Edge *edge, int64_t end_time_millis, bool success, const std::string &output)
 
virtual void BuildEdgeStarted (const Edge *edge, int64_t start_time_millis)
 
virtual void BuildFinished ()
 
virtual void BuildLoadDyndeps ()
 
virtual void BuildStarted ()
 
virtual void Error (const char *msg,...)
 
std::string FormatProgressStatus (const char *progress_status_format, int64_t time_millis) const
 Format the progress status string by replacing the placeholders. More...
 
virtual void Info (const char *msg,...)
 
virtual void PlanHasTotalEdges (int total)
 
 StatusPrinter (const BuildConfig &config)
 
virtual void Warning (const char *msg,...)
 
virtual ~StatusPrinter ()
 

Private Member Functions

void PrintStatus (const Edge *edge, int64_t time_millis)
 
template<size_t S>
void SnprintfRate (double rate, char(&buf)[S], const char *format) const
 

Private Attributes

const BuildConfigconfig_
 
SlidingRateInfo current_rate_
 
int finished_edges_
 
LinePrinter printer_
 Prints progress output. More...
 
const char * progress_status_format_
 The custom progress status format to use. More...
 
int running_edges_
 
int started_edges_
 
int64_t time_millis_
 
int total_edges_
 

Detailed Description

Implementation of the Status interface that prints the status as human-readable strings to stdout.

Definition at line 44 of file status.h.

Constructor & Destructor Documentation

◆ StatusPrinter()

StatusPrinter::StatusPrinter ( const BuildConfig config)
explicit

◆ ~StatusPrinter()

virtual StatusPrinter::~StatusPrinter ( )
inlinevirtual

Definition at line 58 of file status.h.

Member Function Documentation

◆ BuildEdgeFinished()

void StatusPrinter::BuildEdgeFinished ( Edge edge,
int64_t  end_time_millis,
bool  success,
const std::string &  output 
)
virtual

◆ BuildEdgeStarted()

void StatusPrinter::BuildEdgeStarted ( const Edge edge,
int64_t  start_time_millis 
)
virtual

◆ BuildFinished()

void StatusPrinter::BuildFinished ( )
virtual

Implements Status.

Definition at line 143 of file status.cc.

References printer_, LinePrinter::PrintOnNewLine(), and LinePrinter::SetConsoleLocked().

◆ BuildLoadDyndeps()

void StatusPrinter::BuildLoadDyndeps ( )
virtual

Implements Status.

Definition at line 123 of file status.cc.

References g_explaining, printer_, and LinePrinter::PrintOnNewLine().

◆ BuildStarted()

void StatusPrinter::BuildStarted ( )
virtual

Implements Status.

Definition at line 137 of file status.cc.

References finished_edges_, running_edges_, and started_edges_.

Referenced by TEST().

◆ Error()

void StatusPrinter::Error ( const char *  msg,
  ... 
)
virtual

Implements Status.

Definition at line 255 of file status.cc.

◆ FormatProgressStatus()

string StatusPrinter::FormatProgressStatus ( const char *  progress_status_format,
int64_t  time_millis 
) const

Format the progress status string by replacing the placeholders.

See the user manual for more information about the available placeholders.

Parameters
progress_status_formatThe format of the progress status.
statusThe status of the edge.

Definition at line 148 of file status.cc.

References current_rate_, Fatal(), finished_edges_, StatusPrinter::SlidingRateInfo::rate(), running_edges_, SnprintfRate(), started_edges_, time_millis_, total_edges_, and StatusPrinter::SlidingRateInfo::UpdateRate().

Referenced by PrintStatus(), and TEST().

◆ Info()

void StatusPrinter::Info ( const char *  msg,
  ... 
)
virtual

Implements Status.

Definition at line 262 of file status.cc.

◆ PlanHasTotalEdges()

void StatusPrinter::PlanHasTotalEdges ( int  total)
virtual

Implements Status.

Definition at line 44 of file status.cc.

References total_edges_.

◆ PrintStatus()

void StatusPrinter::PrintStatus ( const Edge edge,
int64_t  time_millis 
)
private

◆ SnprintfRate()

template<size_t S>
void StatusPrinter::SnprintfRate ( double  rate,
char(&)  buf[S],
const char *  format 
) const
inlineprivate

Definition at line 83 of file status.h.

Referenced by FormatProgressStatus().

◆ Warning()

void StatusPrinter::Warning ( const char *  msg,
  ... 
)
virtual

Implements Status.

Definition at line 248 of file status.cc.

Member Data Documentation

◆ config_

const BuildConfig& StatusPrinter::config_
private

Definition at line 71 of file status.h.

Referenced by BuildEdgeFinished(), PrintStatus(), and StatusPrinter().

◆ current_rate_

SlidingRateInfo StatusPrinter::current_rate_
mutableprivate

Definition at line 114 of file status.h.

Referenced by FormatProgressStatus().

◆ finished_edges_

int StatusPrinter::finished_edges_
private

Definition at line 73 of file status.h.

Referenced by BuildEdgeFinished(), BuildStarted(), and FormatProgressStatus().

◆ printer_

LinePrinter StatusPrinter::printer_
private

Prints progress output.

Definition at line 77 of file status.h.

Referenced by BuildEdgeFinished(), BuildEdgeStarted(), BuildFinished(), BuildLoadDyndeps(), PrintStatus(), and StatusPrinter().

◆ progress_status_format_

const char* StatusPrinter::progress_status_format_
private

The custom progress status format to use.

Definition at line 80 of file status.h.

Referenced by PrintStatus(), and StatusPrinter().

◆ running_edges_

int StatusPrinter::running_edges_
private

Definition at line 73 of file status.h.

Referenced by BuildEdgeFinished(), BuildEdgeStarted(), BuildStarted(), and FormatProgressStatus().

◆ started_edges_

int StatusPrinter::started_edges_
private

Definition at line 73 of file status.h.

Referenced by BuildEdgeStarted(), BuildStarted(), and FormatProgressStatus().

◆ time_millis_

int64_t StatusPrinter::time_millis_
private

◆ total_edges_

int StatusPrinter::total_edges_
private

Definition at line 73 of file status.h.

Referenced by FormatProgressStatus(), and PlanHasTotalEdges().


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