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 std::string &output, int *start_time, int *end_time)
 
void BuildEdgeStarted (const Edge *edge)
 
void BuildFinished ()
 
void BuildLoadDyndeps ()
 
void BuildStarted ()
 
 BuildStatus (const BuildConfig &config)
 
std::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 std::map< const Edge *, int > RunningEdgeMap
 Map of running edge to time the edge started running. More...
 

Private Member Functions

void PrintStatus (const 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 240 of file build.h.

Member Typedef Documentation

◆ RunningEdgeMap

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

Map of running edge to time the edge started running.

Definition at line 274 of file build.h.

Member Enumeration Documentation

◆ EdgeStatus

Enumerator
kEdgeStarted 
kEdgeFinished 

Definition at line 250 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 std::string &  output,
int *  start_time,
int *  end_time 
)

◆ BuildEdgeStarted()

void BuildStatus::BuildEdgeStarted ( const Edge edge)

◆ BuildFinished()

void BuildStatus::BuildFinished ( )

Definition at line 199 of file build.cc.

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

Referenced by Builder::Build().

◆ BuildLoadDyndeps()

void BuildStatus::BuildLoadDyndeps ( )

Definition at line 180 of file build.cc.

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

Referenced by Builder::LoadDyndeps().

◆ 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 204 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 94 of file build.cc.

References total_edges_.

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

◆ PrintStatus()

void BuildStatus::PrintStatus ( const 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 284 of file build.h.

Referenced by FormatProgressStatus().

Member Data Documentation

◆ config_

const BuildConfig& BuildStatus::config_
private

Definition at line 266 of file build.h.

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

◆ current_rate_

SlidingRateInfo BuildStatus::current_rate_
mutableprivate

Definition at line 335 of file build.h.

Referenced by BuildStarted(), and FormatProgressStatus().

◆ finished_edges_

int BuildStatus::finished_edges_
private

Definition at line 271 of file build.h.

Referenced by BuildEdgeFinished(), and FormatProgressStatus().

◆ overall_rate_

RateInfo BuildStatus::overall_rate_
mutableprivate

Definition at line 334 of file build.h.

Referenced by BuildStarted(), and FormatProgressStatus().

◆ printer_

LinePrinter BuildStatus::printer_
private

Prints progress output.

Definition at line 278 of file build.h.

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

◆ progress_status_format_

const char* BuildStatus::progress_status_format_
private

The custom progress status format to use.

Definition at line 281 of file build.h.

Referenced by BuildStatus(), and PrintStatus().

◆ running_edges_

RunningEdgeMap BuildStatus::running_edges_
private

Definition at line 275 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 269 of file build.h.

Referenced by BuildEdgeFinished(), and BuildEdgeStarted().

◆ started_edges_

int BuildStatus::started_edges_
private

Definition at line 271 of file build.h.

Referenced by BuildEdgeStarted(), and FormatProgressStatus().

◆ total_edges_

int BuildStatus::total_edges_
private

Definition at line 271 of file build.h.

Referenced by FormatProgressStatus(), and PlanHasTotalEdges().


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