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

Tracks the status of a build: completion fraction, printing updates. More...

#include <build.h>

Classes

struct  RateInfo
 
struct  SlidingRateInfo
 

Public Types

enum  EdgeStatus { kEdgeStarted, kEdgeFinished }
 

Public Member Functions

void BuildEdgeFinished (Edge *edge, bool success, const string &output, int *start_time, int *end_time)
 
void BuildEdgeStarted (Edge *edge)
 
void BuildFinished ()
 
void BuildStarted ()
 
 BuildStatus (const BuildConfig &config)
 
string FormatProgressStatus (const char *progress_status_format, EdgeStatus status) const
 Format the progress status string by replacing the placeholders. More...
 
void PlanHasTotalEdges (int total)
 

Private Types

typedef map< Edge *, int > RunningEdgeMap
 Map of running edge to time the edge started running. More...
 

Private Member Functions

void PrintStatus (Edge *edge, EdgeStatus status)
 
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_
 
RateInfo overall_rate_
 
LinePrinter printer_
 Prints progress output. More...
 
const char * progress_status_format_
 The custom progress status format to use. More...
 
RunningEdgeMap running_edges_
 
int64_t start_time_millis_
 Time the build started. More...
 
int started_edges_
 
int total_edges_
 

Detailed Description

Tracks the status of a build: completion fraction, printing updates.

Definition at line 216 of file build.h.

Member Typedef Documentation

◆ RunningEdgeMap

typedef map<Edge*, int> BuildStatus::RunningEdgeMap
private

Map of running edge to time the edge started running.

Definition at line 249 of file build.h.

Member Enumeration Documentation

◆ EdgeStatus

Enumerator
kEdgeStarted 
kEdgeFinished 

Definition at line 225 of file build.h.

Constructor & Destructor Documentation

◆ BuildStatus()

BuildStatus::BuildStatus ( const BuildConfig config)
explicit

Member Function Documentation

◆ BuildEdgeFinished()

void BuildStatus::BuildEdgeFinished ( Edge edge,
bool  success,
const string &  output,
int *  start_time,
int *  end_time 
)

◆ BuildEdgeStarted()

void BuildStatus::BuildEdgeStarted ( Edge edge)

◆ BuildFinished()

void BuildStatus::BuildFinished ( )

Definition at line 181 of file build.cc.

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

Referenced by Builder::Build().

◆ BuildStarted()

void BuildStatus::BuildStarted ( )

◆ FormatProgressStatus()

string BuildStatus::FormatProgressStatus ( const char *  progress_status_format,
EdgeStatus  status 
) 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 186 of file build.cc.

References current_rate_, BuildStatus::RateInfo::Elapsed(), Fatal(), finished_edges_, kEdgeFinished, overall_rate_, BuildStatus::RateInfo::rate(), BuildStatus::SlidingRateInfo::rate(), SnprintfRate(), started_edges_, total_edges_, BuildStatus::RateInfo::UpdateRate(), and BuildStatus::SlidingRateInfo::UpdateRate().

Referenced by PrintStatus().

◆ PlanHasTotalEdges()

void BuildStatus::PlanHasTotalEdges ( int  total)

Definition at line 95 of file build.cc.

References total_edges_.

Referenced by Builder::Build(), and Builder::FinishCommand().

◆ PrintStatus()

void BuildStatus::PrintStatus ( Edge edge,
EdgeStatus  status 
)
private

◆ SnprintfRate()

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

Definition at line 259 of file build.h.

Referenced by FormatProgressStatus().

Member Data Documentation

◆ config_

const BuildConfig& BuildStatus::config_
private

Definition at line 241 of file build.h.

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

◆ current_rate_

SlidingRateInfo BuildStatus::current_rate_
mutableprivate

Definition at line 310 of file build.h.

Referenced by BuildStarted(), and FormatProgressStatus().

◆ finished_edges_

int BuildStatus::finished_edges_
private

Definition at line 246 of file build.h.

Referenced by BuildEdgeFinished(), and FormatProgressStatus().

◆ overall_rate_

RateInfo BuildStatus::overall_rate_
mutableprivate

Definition at line 309 of file build.h.

Referenced by BuildStarted(), and FormatProgressStatus().

◆ printer_

LinePrinter BuildStatus::printer_
private

Prints progress output.

Definition at line 253 of file build.h.

Referenced by BuildEdgeFinished(), BuildEdgeStarted(), BuildFinished(), BuildStatus(), and PrintStatus().

◆ progress_status_format_

const char* BuildStatus::progress_status_format_
private

The custom progress status format to use.

Definition at line 256 of file build.h.

Referenced by BuildStatus(), and PrintStatus().

◆ running_edges_

RunningEdgeMap BuildStatus::running_edges_
private

Definition at line 250 of file build.h.

Referenced by BuildEdgeFinished(), and BuildEdgeStarted().

◆ start_time_millis_

int64_t BuildStatus::start_time_millis_
private

Time the build started.

Definition at line 244 of file build.h.

Referenced by BuildEdgeFinished(), and BuildEdgeStarted().

◆ started_edges_

int BuildStatus::started_edges_
private

Definition at line 246 of file build.h.

Referenced by BuildEdgeStarted(), and FormatProgressStatus().

◆ total_edges_

int BuildStatus::total_edges_
private

Definition at line 246 of file build.h.

Referenced by FormatProgressStatus(), and PlanHasTotalEdges().


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