6#ifdef USE_ESPHOME_TASK_LOG_BUFFER
11#include <freertos/FreeRTOS.h>
12#include <freertos/ringbuf.h>
30 inline const char *
text_data()
const {
return reinterpret_cast<const char *
>(
this) +
sizeof(
LogMessage); }
45 const char *format, va_list args);
49 return message_counter_.load(std::memory_order_relaxed) != last_processed_counter_;
53 inline size_t size()
const {
return size_; }
56 RingbufHandle_t ring_buffer_{
nullptr};
57 StaticRingbuffer_t structure_;
58 uint8_t *storage_{
nullptr};
62 std::atomic<uint16_t> message_counter_{0};
63 mutable uint16_t last_processed_counter_{0};
TaskLogBuffer(size_t total_buffer_size)
bool borrow_message_main_loop(LogMessage **message, const char **text, void **received_token)
bool HOT has_messages() const
bool send_message_thread_safe(uint8_t level, const char *tag, uint16_t line, TaskHandle_t task_handle, const char *format, va_list args)
void release_message_main_loop(void *token)
Providing packet encoding functions for exchanging data with a remote host.
const char * text_data() const