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.