15 #ifndef NINJA_BUILD_LOG_H_
16 #define NINJA_BUILD_LOG_H_
85 bool WriteEntry(FILE* f,
const LogEntry& entry);
93 int output_count,
char** outputs, std::string* err);
Can answer questions about the manifest for the BuildLog.
virtual bool IsPathDead(StringPiece s) const =0
Return if a given output is no longer part of the build manifest.
LogEntry(std::string output)
bool operator==(const LogEntry &o) const
static uint64_t HashCommand(StringPiece command)
Store a log of every command ran for every build.
LogEntry * LookupByOutput(const std::string &path)
Lookup a previously-run command by its output path.
ExternalStringHashMap< std::unique_ptr< LogEntry > >::Type Entries
bool OpenForWriteIfNeeded()
Should be called before using log_file_.
LoadStatus Load(const std::string &path, std::string *err)
Load the on-disk log.
const Entries & entries() const
bool Recompact(const std::string &path, const BuildLogUser &user, std::string *err)
Rewrite the known log entries, throwing away old data.
bool WriteEntry(FILE *f, const LogEntry &entry)
Serialize an entry into a log file.
bool Restat(StringPiece path, const DiskInterface &disk_interface, int output_count, char **outputs, std::string *err)
Restat all outputs in the log.
std::string log_file_path_
bool OpenForWrite(const std::string &path, const BuildLogUser &user, std::string *err)
Prepares writing to the log file without actually opening it - that will happen when/if it's needed.
bool RecordCommand(Edge *edge, int start_time, int end_time, TimeStamp mtime=0)
Interface for accessing the disk.
An edge in the dependency graph; links between Nodes using Rules.
A template for hash_maps keyed by a StringPiece whose string is owned externally (typically by the va...
StringPiece represents a slice of a string whose memory is managed externally.
unsigned long long uint64_t