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

#include <missing_deps.h>

Public Member Functions

bool HadMissingDeps ()
 
 MissingDependencyScanner (MissingDependencyScannerDelegate *delegate, DepsLog *deps_log, State *state, DiskInterface *disk_interface)
 
bool PathExistsBetween (Edge *from, Edge *to)
 
void PrintStats ()
 
void ProcessNode (Node *node)
 
void ProcessNodeDeps (Node *node, Node **dep_nodes, int dep_nodes_count)
 

Public Attributes

MissingDependencyScannerDelegatedelegate_
 
DepsLogdeps_log_
 
DiskInterfacedisk_interface_
 
std::set< Node * > generated_nodes_
 
std::set< const Rule * > generator_rules_
 
int missing_dep_path_count_
 
std::set< Node * > nodes_missing_deps_
 
std::set< Node * > seen_
 
Statestate_
 

Private Types

using AdjacencyMap = std::unordered_map< Edge *, InnerAdjacencyMap >
 
using InnerAdjacencyMap = std::unordered_map< Edge *, bool >
 

Private Attributes

AdjacencyMap adjacency_map_
 

Detailed Description

Definition at line 45 of file missing_deps.h.

Member Typedef Documentation

◆ AdjacencyMap

using MissingDependencyScanner::AdjacencyMap = std::unordered_map<Edge*, InnerAdjacencyMap>
private

Definition at line 70 of file missing_deps.h.

◆ InnerAdjacencyMap

using MissingDependencyScanner::InnerAdjacencyMap = std::unordered_map<Edge*, bool>
private

Definition at line 69 of file missing_deps.h.

Constructor & Destructor Documentation

◆ MissingDependencyScanner()

MissingDependencyScanner::MissingDependencyScanner ( MissingDependencyScannerDelegate delegate,
DepsLog deps_log,
State state,
DiskInterface disk_interface 
)

Definition at line 72 of file missing_deps.cc.

Member Function Documentation

◆ HadMissingDeps()

bool MissingDependencyScanner::HadMissingDeps ( )
inline

Definition at line 52 of file missing_deps.h.

References nodes_missing_deps_.

Referenced by PrintStats().

◆ PathExistsBetween()

bool MissingDependencyScanner::PathExistsBetween ( Edge from,
Edge to 
)

Definition at line 174 of file missing_deps.cc.

References adjacency_map_, and Edge::inputs_.

Referenced by ProcessNodeDeps().

◆ PrintStats()

void MissingDependencyScanner::PrintStats ( )

◆ ProcessNode()

void MissingDependencyScanner::ProcessNode ( Node node)

◆ ProcessNodeDeps()

void MissingDependencyScanner::ProcessNodeDeps ( Node node,
Node **  dep_nodes,
int  dep_nodes_count 
)

Member Data Documentation

◆ adjacency_map_

AdjacencyMap MissingDependencyScanner::adjacency_map_
private

Definition at line 71 of file missing_deps.h.

Referenced by PathExistsBetween().

◆ delegate_

MissingDependencyScannerDelegate* MissingDependencyScanner::delegate_

Definition at line 58 of file missing_deps.h.

Referenced by ProcessNodeDeps().

◆ deps_log_

DepsLog* MissingDependencyScanner::deps_log_

Definition at line 59 of file missing_deps.h.

Referenced by ProcessNode().

◆ disk_interface_

DiskInterface* MissingDependencyScanner::disk_interface_

Definition at line 61 of file missing_deps.h.

Referenced by ProcessNode().

◆ generated_nodes_

std::set<Node*> MissingDependencyScanner::generated_nodes_

Definition at line 64 of file missing_deps.h.

Referenced by PrintStats(), and ProcessNodeDeps().

◆ generator_rules_

std::set<const Rule*> MissingDependencyScanner::generator_rules_

Definition at line 65 of file missing_deps.h.

Referenced by PrintStats(), and ProcessNodeDeps().

◆ missing_dep_path_count_

int MissingDependencyScanner::missing_dep_path_count_

Definition at line 66 of file missing_deps.h.

Referenced by PrintStats(), and ProcessNodeDeps().

◆ nodes_missing_deps_

std::set<Node*> MissingDependencyScanner::nodes_missing_deps_

Definition at line 63 of file missing_deps.h.

Referenced by HadMissingDeps(), PrintStats(), and ProcessNodeDeps().

◆ seen_

std::set<Node*> MissingDependencyScanner::seen_

Definition at line 62 of file missing_deps.h.

Referenced by PrintStats(), and ProcessNode().

◆ state_

State* MissingDependencyScanner::state_

Definition at line 60 of file missing_deps.h.

Referenced by ProcessNode().


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