Ninja
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
State Struct Reference

Global state (file status) for a single run. More...

#include <state.h>

Public Types

typedef ExternalStringHashMap
< Node * >::Type 
Paths
 Mapping of path -> Node. More...
 

Public Member Functions

bool AddDefault (StringPiece path, string *error)
 
EdgeAddEdge (const Rule *rule)
 
void AddIn (Edge *edge, StringPiece path, unsigned int slash_bits)
 
bool AddOut (Edge *edge, StringPiece path, unsigned int slash_bits)
 
void AddPool (Pool *pool)
 
vector< Node * > DefaultNodes (string *error)
 
void Dump ()
 Dump the nodes and Pools (useful for debugging). More...
 
NodeGetNode (StringPiece path, unsigned int slash_bits)
 
NodeLookupNode (StringPiece path) const
 
PoolLookupPool (const string &pool_name)
 
void Reset ()
 Reset state. More...
 
vector< Node * > RootNodes (string *error)
 
NodeSpellcheckNode (const string &path)
 
 State ()
 

Public Attributes

BindingEnv bindings_
 
vector< Node * > defaults_
 
vector< Edge * > edges_
 All the edges of the graph. More...
 
Paths paths_
 
map< string, Pool * > pools_
 All the pools used in the graph. More...
 

Static Public Attributes

static Pool kConsolePool
 
static Pool kDefaultPool
 
static const Rule kPhonyRule
 

Detailed Description

Global state (file status) for a single run.

Definition at line 84 of file state.h.

Member Typedef Documentation

Mapping of path -> Node.

Definition at line 117 of file state.h.

Constructor & Destructor Documentation

State::State ( )

Definition at line 76 of file state.cc.

References AddPool(), BindingEnv::AddRule(), bindings_, kConsolePool, kDefaultPool, and kPhonyRule.

Member Function Documentation

bool State::AddDefault ( StringPiece  path,
string *  error 
)

Definition at line 152 of file state.cc.

References StringPiece::AsString(), defaults_, and LookupNode().

Referenced by ManifestParser::ParseDefault().

Edge * State::AddEdge ( const Rule rule)
void State::AddIn ( Edge edge,
StringPiece  path,
unsigned int  slash_bits 
)

Definition at line 137 of file state.cc.

References Node::AddOutEdge(), GetNode(), and Edge::inputs_.

Referenced by ManifestParser::ParseEdge().

bool State::AddOut ( Edge edge,
StringPiece  path,
unsigned int  slash_bits 
)

Definition at line 143 of file state.cc.

References GetNode(), Node::in_edge(), Edge::outputs_, and Node::set_in_edge().

Referenced by ManifestParser::ParseEdge().

void State::AddPool ( Pool pool)

Definition at line 82 of file state.cc.

References LookupPool(), Pool::name(), and pools_.

Referenced by ManifestParser::ParsePool(), and State().

vector< Node * > State::DefaultNodes ( string *  error)

Definition at line 179 of file state.cc.

References defaults_, and RootNodes().

void State::Dump ( )

Dump the nodes and Pools (useful for debugging).

Definition at line 190 of file state.cc.

References Node::dirty(), Node::id(), Node::path(), paths_, pools_, and Node::status_known().

Node * State::GetNode ( StringPiece  path,
unsigned int  slash_bits 
)
Node * State::LookupNode ( StringPiece  path) const

Definition at line 112 of file state.cc.

References METRIC_RECORD, and paths_.

Referenced by AddDefault(), Builder::AddTarget(), Cleaner::CleanTarget(), Cleaner::CleanTargets(), and GetNode().

Pool * State::LookupPool ( const string &  pool_name)

Definition at line 87 of file state.cc.

References pools_.

Referenced by AddPool(), ManifestParser::ParseEdge(), ManifestParser::ParsePool(), and TEST_F().

void State::Reset ( )

Reset state.

Keeps all nodes and edges, but restores them to the state where we haven't yet examined the disk for dirty state.

Definition at line 183 of file state.cc.

References edges_, and paths_.

vector< Node * > State::RootNodes ( string *  error)
Returns
the root node(s) of the graph. (Root nodes have no output edges).
Parameters
errorwhere to write the error message if somethings went wrong.

Definition at line 162 of file state.cc.

References edges_.

Referenced by DefaultNodes().

Node * State::SpellcheckNode ( const string &  path)

Definition at line 120 of file state.cc.

References EditDistance(), and paths_.

Member Data Documentation

BindingEnv State::bindings_
vector<Node*> State::defaults_

Definition at line 127 of file state.h.

Referenced by AddDefault(), and DefaultNodes().

vector<Edge*> State::edges_
Pool State::kConsolePool
static

Definition at line 86 of file state.h.

Referenced by State(), and Edge::use_console().

Pool State::kDefaultPool
static

Definition at line 85 of file state.h.

Referenced by AddEdge(), and State().

const Rule State::kPhonyRule
static

Definition at line 87 of file state.h.

Referenced by ImplicitDepLoader::CreatePhonyInEdge(), Edge::is_phony(), and State().

Paths State::paths_

Definition at line 118 of file state.h.

Referenced by Dump(), GetNode(), LookupNode(), Reset(), SpellcheckNode(), and VerifyGraph().

map<string, Pool*> State::pools_

All the pools used in the graph.

Definition at line 121 of file state.h.

Referenced by AddPool(), Dump(), and LookupPool().


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