8#ifdef USE_ESPHOME_TASK_LOG_BUFFER
12#include <freertos/FreeRTOS.h>
13#include <freertos/ringbuf.h>
46 inline const char *
text_data()
const {
return reinterpret_cast<const char *
>(
this) +
sizeof(
LogMessage); }
64 return message_counter_.load(std::memory_order_relaxed) != last_processed_counter_;
68 static constexpr size_t size() {
return ESPHOME_TASK_LOG_BUFFER_SIZE; }
71 RingbufHandle_t ring_buffer_{
nullptr};
72 StaticRingbuffer_t structure_;
73 uint8_t storage_[ESPHOME_TASK_LOG_BUFFER_SIZE];
76 std::atomic<uint16_t> message_counter_{0};
77 mutable uint16_t last_processed_counter_{0};
78 void *current_token_{
nullptr};
void release_message_main_loop()
bool borrow_message_main_loop(LogMessage *&message, uint16_t &text_length)
bool send_message_thread_safe(uint8_t level, const char *tag, uint16_t line, const char *thread_name, const char *format, va_list args)
static constexpr size_t size()
bool HOT has_messages() const
const char int const __FlashStringHelper * format
const char int const __FlashStringHelper va_list args
const char * text_data() const