Kill QueueSpan
As we move to writing large blocks, QueueSpan is only used for the log
file header, and was just calling CopyMessage. Update the callers.
Change-Id: I50c79f653cda2c5bf9d401c52a59b5a1698285c1
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/aos/events/logging/log_edit.cc b/aos/events/logging/log_edit.cc
index e3cfc3a..dca56bb 100644
--- a/aos/events/logging/log_edit.cc
+++ b/aos/events/logging/log_edit.cc
@@ -51,7 +51,10 @@
aos::logger::DetachedBufferWriter buffer_writer(
FLAGS_logfile,
std::make_unique<aos::logger::DummyEncoder>(FLAGS_max_message_size));
- buffer_writer.QueueSpan(header.span());
+ {
+ aos::logger::DataEncoder::SpanCopier coppier(header.span());
+ buffer_writer.CopyMessage(&coppier, aos::monotonic_clock::min_time);
+ }
while (true) {
absl::Span<const uint8_t> msg_data = span_reader.ReadMessage();
@@ -59,7 +62,10 @@
break;
}
- buffer_writer.QueueSpan(msg_data);
+ {
+ aos::logger::DataEncoder::SpanCopier coppier(msg_data);
+ buffer_writer.CopyMessage(&coppier, aos::monotonic_clock::min_time);
+ }
}
} else {
aos::logger::MessageReader reader(FLAGS_logfile);
diff --git a/aos/events/logging/log_namer.cc b/aos/events/logging/log_namer.cc
index 120bd79..c0c7c73 100644
--- a/aos/events/logging/log_namer.cc
+++ b/aos/events/logging/log_namer.cc
@@ -248,7 +248,8 @@
header, {.multi_line = false, .max_vector_size = 100});
CHECK(writer);
- writer->QueueSpan(header.span());
+ DataEncoder::SpanCopier coppier(header.span());
+ writer->CopyMessage(&coppier, aos::monotonic_clock::now());
header_written_ = true;
monotonic_start_time_ = log_namer_->monotonic_start_time(
node_index_, state_[node_index_].boot_uuid);
@@ -606,7 +607,8 @@
std::make_unique<DetachedBufferWriter>(
filename, encoder_factory_(header->span().size()));
- writer->QueueSpan(header->span());
+ DataEncoder::SpanCopier coppier(header->span());
+ writer->CopyMessage(&coppier, aos::monotonic_clock::now());
if (!writer->ran_out_of_space()) {
all_filenames_.emplace_back(
diff --git a/aos/events/logging/logfile_utils.cc b/aos/events/logging/logfile_utils.cc
index ab56356..90220c8 100644
--- a/aos/events/logging/logfile_utils.cc
+++ b/aos/events/logging/logfile_utils.cc
@@ -129,27 +129,12 @@
return *this;
}
-void DetachedBufferWriter::QueueSpan(absl::Span<const uint8_t> span) {
+void DetachedBufferWriter::CopyMessage(DataEncoder::Copier *coppier,
+ aos::monotonic_clock::time_point now) {
if (ran_out_of_space_) {
// We don't want any later data to be written after space becomes
// available, so refuse to write anything more once we've dropped data
// because we ran out of space.
- VLOG(1) << "Ignoring span: " << span.size();
- return;
- }
-
- if (!encoder_->HasSpace(span.size())) {
- Flush();
- CHECK(encoder_->HasSpace(span.size()));
- }
- DataEncoder::SpanCopier coppier(span);
- encoder_->Encode(&coppier);
- FlushAtThreshold(aos::monotonic_clock::now());
-}
-
-void DetachedBufferWriter::CopyMessage(DataEncoder::Copier *coppier,
- aos::monotonic_clock::time_point now) {
- if (ran_out_of_space_) {
return;
}
diff --git a/aos/events/logging/logfile_utils.h b/aos/events/logging/logfile_utils.h
index 346a36e..ca36ace 100644
--- a/aos/events/logging/logfile_utils.h
+++ b/aos/events/logging/logfile_utils.h
@@ -76,9 +76,6 @@
void CopyMessage(DataEncoder::Copier *coppier,
aos::monotonic_clock::time_point now);
- // Queues up data in span. May copy or may write it to disk immediately.
- void QueueSpan(absl::Span<const uint8_t> span);
-
// Indicates we got ENOSPC when trying to write. After this returns true, no
// further data is written.
bool ran_out_of_space() const { return ran_out_of_space_; }
diff --git a/aos/events/logging/logfile_utils_out_of_space_test_runner.cc b/aos/events/logging/logfile_utils_out_of_space_test_runner.cc
index afc4d77..719eb6e 100644
--- a/aos/events/logging/logfile_utils_out_of_space_test_runner.cc
+++ b/aos/events/logging/logfile_utils_out_of_space_test_runner.cc
@@ -22,10 +22,14 @@
FLAGS_tmpfs + "/file",
std::make_unique<aos::logger::DummyEncoder>(data.size()));
for (int i = 0; i < 8; ++i) {
- writer.QueueSpan(data);
+ aos::logger::DataEncoder::SpanCopier coppier(data);
+ writer.CopyMessage(&coppier, aos::monotonic_clock::now());
CHECK(!writer.ran_out_of_space()) << ": " << i;
}
- writer.QueueSpan(data);
+ {
+ aos::logger::DataEncoder::SpanCopier coppier(data);
+ writer.CopyMessage(&coppier, aos::monotonic_clock::now());
+ }
CHECK(writer.ran_out_of_space());
writer.acknowledge_out_of_space();
}
diff --git a/aos/events/logging/logfile_utils_test.cc b/aos/events/logging/logfile_utils_test.cc
index f453798..b3a9bbd 100644
--- a/aos/events/logging/logfile_utils_test.cc
+++ b/aos/events/logging/logfile_utils_test.cc
@@ -39,6 +39,10 @@
void WriteSizedFlatbuffer(flatbuffers::DetachedBuffer &&buffer) {
QueueSpan(absl::Span<const uint8_t>(buffer.data(), buffer.size()));
}
+ void QueueSpan(absl::Span<const uint8_t> buffer) {
+ DataEncoder::SpanCopier coppier(buffer);
+ CopyMessage(&coppier, monotonic_clock::now());
+ }
};
// Creates a size prefixed flatbuffer from json.