Nuke LocalLogNamer
Nothing uses it except tests. It isn't worth the cost anymore. Clearly
the abstraction isn't good enough to be useful...
Change-Id: I28aa0cf3600c5bfbdfc3d3a0ee4b0c1388129cbb
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/aos/events/logging/log_namer.cc b/aos/events/logging/log_namer.cc
index 6fd39f8..a04d0ea 100644
--- a/aos/events/logging/log_namer.cc
+++ b/aos/events/logging/log_namer.cc
@@ -547,43 +547,6 @@
return result;
}
-NewDataWriter *LocalLogNamer::MakeWriter(const Channel *channel) {
- CHECK(configuration::ChannelIsSendableOnNode(channel, node()))
- << ": " << configuration::CleanedChannelToString(channel);
- return &data_writer_;
-}
-
-void LocalLogNamer::Rotate(const Node *node) {
- CHECK(node == this->node());
- data_writer_.Rotate();
-}
-
-void LocalLogNamer::WriteConfiguration(
- aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader> *header,
- std::string_view config_sha256) {
- const std::string filename = absl::StrCat(base_name_, config_sha256, ".bfbs");
-
- std::unique_ptr<DetachedBufferWriter> writer =
- std::make_unique<DetachedBufferWriter>(
- filename, std::make_unique<aos::logger::DummyEncoder>());
- writer->QueueSizedFlatbuffer(header->Release());
-}
-
-NewDataWriter *LocalLogNamer::MakeTimestampWriter(const Channel *channel) {
- CHECK(configuration::ChannelIsReadableOnNode(channel, node_))
- << ": Message is not delivered to this node.";
- CHECK(node_ != nullptr) << ": Can't log timestamps in a single node world";
- CHECK(configuration::ConnectionDeliveryTimeIsLoggedOnNode(channel, node_,
- node_))
- << ": Delivery times aren't logged for this channel on this node.";
- return &data_writer_;
-}
-
-NewDataWriter *LocalLogNamer::MakeForwardedTimestampWriter(
- const Channel * /*channel*/, const Node * /*node*/) {
- LOG(FATAL) << "Can't log forwarded timestamps in a singe log file.";
- return nullptr;
-}
MultiNodeLogNamer::MultiNodeLogNamer(std::string_view base_name,
EventLoop *event_loop)
: MultiNodeLogNamer(base_name, event_loop->configuration(), event_loop,
diff --git a/aos/events/logging/log_namer.h b/aos/events/logging/log_namer.h
index 7947ebe..00ed63f 100644
--- a/aos/events/logging/log_namer.h
+++ b/aos/events/logging/log_namer.h
@@ -286,57 +286,6 @@
aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader>::Empty();
};
-// Local log namer is a simple version which only names things
-// "base_name.part#.bfbs" and increments the part number. It doesn't support
-// any other log type.
-class LocalLogNamer : public LogNamer {
- public:
- LocalLogNamer(std::string_view base_name, aos::EventLoop *event_loop,
- const aos::Node *node)
- : LogNamer(event_loop->configuration(), event_loop, node),
- base_name_(base_name),
- data_writer_(
- this, node, event_loop->node(),
- [this](NewDataWriter *writer) {
- writer->writer = std::make_unique<DetachedBufferWriter>(
- absl::StrCat(base_name_, ".part", writer->parts_index(),
- ".bfbs"),
- std::make_unique<aos::logger::DummyEncoder>());
- },
- [](NewDataWriter * /*writer*/) {}) {}
-
- LocalLogNamer(const LocalLogNamer &) = delete;
- LocalLogNamer(LocalLogNamer &&) = delete;
- LocalLogNamer &operator=(const LocalLogNamer &) = delete;
- LocalLogNamer &operator=(LocalLogNamer &&) = delete;
-
- ~LocalLogNamer() override = default;
-
- std::string_view base_name() const final { return base_name_; }
-
- void set_base_name(std::string_view base_name) final {
- base_name_ = base_name;
- }
-
- NewDataWriter *MakeWriter(const Channel *channel) override;
-
- void Rotate(const Node *node) override;
-
- NewDataWriter *MakeTimestampWriter(const Channel *channel) override;
-
- NewDataWriter *MakeForwardedTimestampWriter(const Channel * /*channel*/,
- const Node * /*node*/) override;
-
- void WriteConfiguration(
- aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader> *header,
- std::string_view config_sha256) override;
-
- private:
- std::string base_name_;
-
- NewDataWriter data_writer_;
-};
-
// Log namer which uses a config and a base name to name a bunch of files.
class MultiNodeLogNamer : public LogNamer {
public:
diff --git a/aos/events/logging/log_writer.h b/aos/events/logging/log_writer.h
index c364d36..51b46ae 100644
--- a/aos/events/logging/log_writer.h
+++ b/aos/events/logging/log_writer.h
@@ -156,15 +156,6 @@
// Returns whether a log is currently being written.
bool is_started() const { return static_cast<bool>(log_namer_); }
- // Shortcut to call StartLogging with a LocalLogNamer when event processing
- // starts.
- void StartLoggingLocalNamerOnRun(std::string base_name) {
- event_loop_->OnRun([this, base_name]() {
- StartLogging(
- std::make_unique<LocalLogNamer>(base_name, event_loop_, node_));
- });
- }
-
// Shortcut to call StartLogging with a MultiNodeLogNamer when event
// processing starts.
void StartLoggingOnRun(std::string base_name) {
diff --git a/aos/events/logging/logger_test.cc b/aos/events/logging/logger_test.cc
index 62648f1..c5b1768 100644
--- a/aos/events/logging/logger_test.cc
+++ b/aos/events/logging/logger_test.cc
@@ -84,7 +84,7 @@
const ::std::string base_name = tmpdir + "/logfile";
const ::std::string config =
absl::StrCat(base_name, kSingleConfigSha256, ".bfbs");
- const ::std::string logfile = base_name + ".part0.bfbs";
+ const ::std::string logfile = base_name + "_data.part0.bfbs";
// Remove it.
unlink(config.c_str());
unlink(logfile.c_str());
@@ -100,7 +100,7 @@
Logger logger(logger_event_loop.get());
logger.set_separate_config(false);
logger.set_polling_period(std::chrono::milliseconds(100));
- logger.StartLoggingLocalNamerOnRun(base_name);
+ logger.StartLoggingOnRun(base_name);
event_loop_factory_.RunFor(chrono::milliseconds(20000));
}
@@ -148,11 +148,11 @@
const ::std::string base_name1 = tmpdir + "/logfile1";
const ::std::string config1 =
absl::StrCat(base_name1, kSingleConfigSha256, ".bfbs");
- const ::std::string logfile1 = base_name1 + ".part0.bfbs";
+ const ::std::string logfile1 = base_name1 + "_data.part0.bfbs";
const ::std::string base_name2 = tmpdir + "/logfile2";
const ::std::string config2 =
absl::StrCat(base_name2, kSingleConfigSha256, ".bfbs");
- const ::std::string logfile2 = base_name2 + ".part0.bfbs";
+ const ::std::string logfile2 = base_name2 + "_data.part0.bfbs";
unlink(logfile1.c_str());
unlink(config1.c_str());
unlink(logfile2.c_str());
@@ -168,15 +168,16 @@
Logger logger(logger_event_loop.get());
logger.set_polling_period(std::chrono::milliseconds(100));
- logger_event_loop->OnRun([base_name1, base_name2, &logger_event_loop,
- &logger]() {
- logger.StartLogging(std::make_unique<LocalLogNamer>(
- base_name1, logger_event_loop.get(), logger_event_loop->node()));
- EXPECT_DEATH(
- logger.StartLogging(std::make_unique<LocalLogNamer>(
- base_name2, logger_event_loop.get(), logger_event_loop->node())),
- "Already logging");
- });
+ logger_event_loop->OnRun(
+ [base_name1, base_name2, &logger_event_loop, &logger]() {
+ logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
+ base_name1, logger_event_loop->configuration(),
+ logger_event_loop.get(), logger_event_loop->node()));
+ EXPECT_DEATH(logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
+ base_name2, logger_event_loop->configuration(),
+ logger_event_loop.get(), logger_event_loop->node())),
+ "Already logging");
+ });
event_loop_factory_.RunFor(chrono::milliseconds(20000));
}
}
@@ -191,7 +192,7 @@
const ::std::string base_name = tmpdir + "/logfile";
const ::std::string config_file =
absl::StrCat(base_name, kSingleConfigSha256, ".bfbs");
- const ::std::string logfile = base_name + ".part0.bfbs";
+ const ::std::string logfile = base_name + "_data.part0.bfbs";
// Remove the log file.
unlink(config_file.c_str());
unlink(logfile.c_str());
@@ -205,7 +206,7 @@
Logger logger(logger_event_loop.get());
logger.set_separate_config(false);
logger.set_polling_period(std::chrono::milliseconds(100));
- logger.StartLoggingLocalNamerOnRun(base_name);
+ logger.StartLoggingOnRun(base_name);
event_loop_factory.RunFor(chrono::seconds(2));
}
@@ -244,8 +245,9 @@
logger.set_separate_config(false);
logger.set_polling_period(std::chrono::milliseconds(100));
logger_event_loop->OnRun([base_name, &logger_event_loop, &logger]() {
- logger.StartLogging(std::make_unique<LocalLogNamer>(
- base_name, logger_event_loop.get(), logger_event_loop->node()));
+ logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
+ base_name, logger_event_loop->configuration(),
+ logger_event_loop.get(), logger_event_loop->node()));
logger.StopLogging(aos::monotonic_clock::min_time);
EXPECT_DEATH(logger.StopLogging(aos::monotonic_clock::min_time),
"Not logging right now");
@@ -260,11 +262,11 @@
const ::std::string base_name1 = tmpdir + "/logfile1";
const ::std::string config1 =
absl::StrCat(base_name1, kSingleConfigSha256, ".bfbs");
- const ::std::string logfile1 = base_name1 + ".part0.bfbs";
+ const ::std::string logfile1 = base_name1 + "_data.part0.bfbs";
const ::std::string base_name2 = tmpdir + "/logfile2";
const ::std::string config2 =
absl::StrCat(base_name2, kSingleConfigSha256, ".bfbs");
- const ::std::string logfile2 = base_name2 + ".part0.bfbs";
+ const ::std::string logfile2 = base_name2 + "_data.part0.bfbs";
unlink(logfile1.c_str());
unlink(config1.c_str());
unlink(logfile2.c_str());
@@ -281,13 +283,15 @@
Logger logger(logger_event_loop.get());
logger.set_separate_config(false);
logger.set_polling_period(std::chrono::milliseconds(100));
- logger.StartLogging(std::make_unique<LocalLogNamer>(
- base_name1, logger_event_loop.get(), logger_event_loop->node()));
+ logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
+ base_name1, logger_event_loop->configuration(), logger_event_loop.get(),
+ logger_event_loop->node()));
event_loop_factory_.RunFor(chrono::milliseconds(10000));
logger.StopLogging(logger_event_loop->monotonic_now());
event_loop_factory_.RunFor(chrono::milliseconds(10000));
- logger.StartLogging(std::make_unique<LocalLogNamer>(
- base_name2, logger_event_loop.get(), logger_event_loop->node()));
+ logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
+ base_name2, logger_event_loop->configuration(), logger_event_loop.get(),
+ logger_event_loop->node()));
event_loop_factory_.RunFor(chrono::milliseconds(10000));
}
@@ -330,8 +334,8 @@
const ::std::string base_name = tmpdir + "/logfile";
const ::std::string config =
absl::StrCat(base_name, kSingleConfigSha256, ".bfbs");
- const ::std::string logfile0 = base_name + ".part0.bfbs";
- const ::std::string logfile1 = base_name + ".part1.bfbs";
+ const ::std::string logfile0 = base_name + "_data.part0.bfbs";
+ const ::std::string logfile1 = base_name + "_data.part1.bfbs";
// Remove it.
unlink(config.c_str());
unlink(logfile0.c_str());
@@ -348,7 +352,7 @@
Logger logger(logger_event_loop.get());
logger.set_separate_config(false);
logger.set_polling_period(std::chrono::milliseconds(100));
- logger.StartLoggingLocalNamerOnRun(base_name);
+ logger.StartLoggingOnRun(base_name);
event_loop_factory_.RunFor(chrono::milliseconds(10000));
logger.Rotate();
event_loop_factory_.RunFor(chrono::milliseconds(10000));
@@ -450,7 +454,7 @@
Logger logger(logger_event_loop.get());
logger.set_separate_config(false);
logger.set_polling_period(std::chrono::milliseconds(100));
- logger.StartLoggingLocalNamerOnRun(base_name);
+ logger.StartLoggingOnRun(base_name);
event_loop_factory_.RunFor(chrono::milliseconds(1000));
}
@@ -466,7 +470,7 @@
const ::std::string base_name = tmpdir + "/logfile";
const ::std::string config_file =
absl::StrCat(base_name, kSingleConfigSha256, ".bfbs");
- const ::std::string logfile = base_name + ".part0.bfbs";
+ const ::std::string logfile = base_name + "_data.part0.bfbs";
// Remove the log file.
unlink(config_file.c_str());
unlink(logfile.c_str());
@@ -513,7 +517,7 @@
Logger logger(logger_event_loop.get());
logger.set_separate_config(false);
logger.set_polling_period(std::chrono::milliseconds(100));
- logger.StartLoggingLocalNamerOnRun(base_name);
+ logger.StartLoggingOnRun(base_name);
event_loop_factory.RunFor(kSendPeriod * max_legal_messages * 2);
}
diff --git a/aos/events/logging/realtime_replay_test.cc b/aos/events/logging/realtime_replay_test.cc
index c7744d4..0cdf9fb 100644
--- a/aos/events/logging/realtime_replay_test.cc
+++ b/aos/events/logging/realtime_replay_test.cc
@@ -51,7 +51,7 @@
Logger logger(logger_event_loop.get());
logger.set_separate_config(false);
logger.set_polling_period(std::chrono::milliseconds(100));
- logger.StartLoggingLocalNamerOnRun(base_name);
+ logger.StartLoggingOnRun(base_name);
event_loop_factory_.RunFor(std::chrono::milliseconds(2000));
}