Expose PackConfiguration() method

Change-Id: I5a6f1e3555959b798bf35df397d07340cd05791e
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/events/logging/log_writer.cc b/aos/events/logging/log_writer.cc
index d129073..db6bcc1 100644
--- a/aos/events/logging/log_writer.cc
+++ b/aos/events/logging/log_writer.cc
@@ -231,18 +231,23 @@
   }
 }
 
+aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader> PackConfiguration(
+    const Configuration *const configuration) {
+  flatbuffers::FlatBufferBuilder fbb;
+  flatbuffers::Offset<aos::Configuration> configuration_offset =
+      CopyFlatBuffer(configuration, &fbb);
+  LogFileHeader::Builder log_file_header_builder(fbb);
+  log_file_header_builder.add_configuration(configuration_offset);
+  fbb.FinishSizePrefixed(log_file_header_builder.Finish());
+  return fbb.Release();
+}
+
 std::string Logger::WriteConfiguration(LogNamer *log_namer) {
   std::string config_sha256;
 
   if (separate_config_) {
-    flatbuffers::FlatBufferBuilder fbb;
-    flatbuffers::Offset<aos::Configuration> configuration_offset =
-        CopyFlatBuffer(configuration_, &fbb);
-    LogFileHeader::Builder log_file_header_builder(fbb);
-    log_file_header_builder.add_configuration(configuration_offset);
-    fbb.FinishSizePrefixed(log_file_header_builder.Finish());
-    aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader> config_header(
-        fbb.Release());
+    aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader> config_header =
+        PackConfiguration(configuration_);
     config_sha256 = Sha256(config_header.span());
     LOG(INFO) << "Config sha256 of " << config_sha256;
     log_namer->WriteConfiguration(&config_header, config_sha256);
diff --git a/aos/events/logging/log_writer.h b/aos/events/logging/log_writer.h
index 114e874..837a02a 100644
--- a/aos/events/logging/log_writer.h
+++ b/aos/events/logging/log_writer.h
@@ -20,6 +20,11 @@
 namespace aos {
 namespace logger {
 
+// Packs the provided configuration into the separate config LogFileHeader
+// container.
+aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader> PackConfiguration(
+    const Configuration *const configuration);
+
 // Logs all channels available in the event loop to disk every 100 ms.
 // Start by logging one message per channel to capture any state and
 // configuration that is sent rately on a channel and would affect execution.