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().