Support stopping and starting logging at runtime
Change-Id: If1e1b7119808d1f56e96efb71ea7000e0fa13fe8
diff --git a/aos/events/logging/log_namer.h b/aos/events/logging/log_namer.h
index 5265f24..661f28d 100644
--- a/aos/events/logging/log_namer.h
+++ b/aos/events/logging/log_namer.h
@@ -126,6 +126,8 @@
const Configuration *configuration, const Node *node);
~MultiNodeLogNamer() override = default;
+ std::string_view base_name() const { return base_name_; }
+
void WriteHeader(
aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader> *header,
const Node *node) override;
@@ -150,6 +152,22 @@
// this method.
bool ran_out_of_space() const { return ran_out_of_space_; }
+ // Returns the maximum total_bytes() value for all existing
+ // DetachedBufferWriters.
+ //
+ // Returns 0 if no files are open.
+ size_t maximum_total_bytes() const {
+ size_t result = 0;
+ for (const std::pair<const Channel *const, DataWriter> &data_writer :
+ data_writers_) {
+ result = std::max(result, data_writer.second.writer->total_bytes());
+ }
+ if (data_writer_) {
+ result = std::max(result, data_writer_->total_bytes());
+ }
+ return result;
+ }
+
// Closes all existing log files. No more data may be written after this.
//
// This may set ran_out_of_space().