diff options
author | Evan Martin <martine@danga.com> | 2012-10-02 19:05:29 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2012-10-02 19:05:29 (GMT) |
commit | 8bd8d170e9816bb602d3efbb1d90844762b5ad12 (patch) | |
tree | 9396f72dd5840be01a89c9f06e13970936b23d70 | |
parent | 733b2bdf16c0aee601c78828d6b19549aed51c6c (diff) | |
parent | 5cd579de4e0aff88f23b580610214ae17ebda330 (diff) | |
download | Ninja-8bd8d170e9816bb602d3efbb1d90844762b5ad12.zip Ninja-8bd8d170e9816bb602d3efbb1d90844762b5ad12.tar.gz Ninja-8bd8d170e9816bb602d3efbb1d90844762b5ad12.tar.bz2 |
Merge pull request #436 from tfarina/dry-run-unnamed-namespace
Move DryRunCommandRunner into a unnamed namespace.
-rw-r--r-- | src/build.cc | 63 |
1 files changed, 39 insertions, 24 deletions
diff --git a/src/build.cc b/src/build.cc index a2f2720..9877db8 100644 --- a/src/build.cc +++ b/src/build.cc @@ -38,6 +38,45 @@ #include "subprocess.h" #include "util.h" +namespace { + +/// A CommandRunner that doesn't actually run the commands. +class DryRunCommandRunner : public CommandRunner { + public: + virtual ~DryRunCommandRunner() {} + + // Overridden from CommandRunner: + virtual bool CanRunMore(); + virtual bool StartCommand(Edge* edge); + virtual Edge* WaitForCommand(ExitStatus* status, string* /* output */); + + private: + queue<Edge*> finished_; +}; + +bool DryRunCommandRunner::CanRunMore() { + return true; +} + +bool DryRunCommandRunner::StartCommand(Edge* edge) { + finished_.push(edge); + return true; +} + +Edge* DryRunCommandRunner::WaitForCommand(ExitStatus* status, + string* /*output*/) { + if (finished_.empty()) { + *status = ExitFailure; + return NULL; + } + *status = ExitSuccess; + Edge* edge = finished_.front(); + finished_.pop(); + return edge; +} + +} // namespace + BuildStatus::BuildStatus(const BuildConfig& config) : config_(config), start_time_millis_(GetTimeMillis()), @@ -528,30 +567,6 @@ Edge* RealCommandRunner::WaitForCommand(ExitStatus* status, string* output) { return edge; } -/// A CommandRunner that doesn't actually run the commands. -struct DryRunCommandRunner : public CommandRunner { - virtual ~DryRunCommandRunner() {} - virtual bool CanRunMore() { - return true; - } - virtual bool StartCommand(Edge* edge) { - finished_.push(edge); - return true; - } - virtual Edge* WaitForCommand(ExitStatus* status, string* /* output */) { - if (finished_.empty()) { - *status = ExitFailure; - return NULL; - } - *status = ExitSuccess; - Edge* edge = finished_.front(); - finished_.pop(); - return edge; - } - - queue<Edge*> finished_; -}; - Builder::Builder(State* state, const BuildConfig& config, BuildLog* log, DiskInterface* disk_interface) : state_(state), config_(config), disk_interface_(disk_interface), |