From 642e24b340a17c350389d4fd8c7e16b82e3d6a09 Mon Sep 17 00:00:00 2001 From: Exortions Date: Sat, 28 Dec 2024 13:17:00 -0800 Subject: [PATCH] implement sd card cache --- include/lemlog/logger/sinks/sd-card.hpp | 10 +++++++-- src/lemlog/logger/sinks/sd-card.cpp | 29 ++++++++++++++++++++----- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/include/lemlog/logger/sinks/sd-card.hpp b/include/lemlog/logger/sinks/sd-card.hpp index b3f78f3..ed628e9 100644 --- a/include/lemlog/logger/sinks/sd-card.hpp +++ b/include/lemlog/logger/sinks/sd-card.hpp @@ -1,6 +1,7 @@ #pragma once #include "lemlog/logger/logger.hpp" +#include namespace logger { /** @@ -8,12 +9,17 @@ namespace logger { */ class SDCard : public Sink { public: - SDCard(std::string filename = ".log", bool logTimestamp = true); + SDCard(std::string filename = ".log", bool logTimestamp = true, + int cacheSize = 10); void send(Level level, std::string topic, std::string message) override; private: std::string formatTimestamp(long long ms); + // cache of messages + std::vector cache; + std::string filename; bool logTimestamp; + int cacheSize; }; -} \ No newline at end of file +} // namespace logger \ No newline at end of file diff --git a/src/lemlog/logger/sinks/sd-card.cpp b/src/lemlog/logger/sinks/sd-card.cpp index 782182a..b5100a2 100644 --- a/src/lemlog/logger/sinks/sd-card.cpp +++ b/src/lemlog/logger/sinks/sd-card.cpp @@ -3,7 +3,12 @@ #include namespace logger { -SDCard::SDCard(std::string filename, bool logTimestamp) : filename("/usd/" + filename), logTimestamp(logTimestamp) {} +SDCard::SDCard(std::string filename, bool logTimestamp, int cacheSize) + : filename("/usd/" + filename), + logTimestamp(logTimestamp), + cacheSize(cacheSize) { + this->cache = std::vector(); +} std::string SDCard::formatTimestamp(long long ms) { // use the % operator to get the remainder of the division @@ -25,8 +30,11 @@ void SDCard::send(Level level, std::string topic, std::string message) { // output: