|
ESPHome 2026.1.5
|
Task log buffer for ESP32 platform using FreeRTOS ring buffer. More...
#include <task_log_buffer_esp32.h>
Data Structures | |
| struct | LogMessage |
Public Member Functions | |
| TaskLogBuffer (size_t total_buffer_size) | |
| ~TaskLogBuffer () | |
| bool | borrow_message_main_loop (LogMessage **message, const char **text, void **received_token) |
| void | release_message_main_loop (void *token) |
| bool | send_message_thread_safe (uint8_t level, const char *tag, uint16_t line, TaskHandle_t task_handle, const char *format, va_list args) |
| bool HOT | has_messages () const |
| size_t | size () const |
Task log buffer for ESP32 platform using FreeRTOS ring buffer.
Threading Model: Multi-Producer Single-Consumer (MPSC)
This uses the FreeRTOS ring buffer (RINGBUF_TYPE_NOSPLIT) which provides built-in thread-safety for the MPSC pattern. The ring buffer ensures message integrity - each message is stored contiguously.
Design:
Definition at line 34 of file task_log_buffer_esp32.h.
|
explicit |
Definition at line 11 of file task_log_buffer_esp32.cpp.
| esphome::logger::TaskLogBuffer::~TaskLogBuffer | ( | ) |
Definition at line 21 of file task_log_buffer_esp32.cpp.
| bool esphome::logger::TaskLogBuffer::borrow_message_main_loop | ( | LogMessage ** | message, |
| const char ** | text, | ||
| void ** | received_token ) |
Definition at line 34 of file task_log_buffer_esp32.cpp.
|
inline |
Definition at line 65 of file task_log_buffer_esp32.h.
| void esphome::logger::TaskLogBuffer::release_message_main_loop | ( | void * | token | ) |
Definition at line 53 of file task_log_buffer_esp32.cpp.
| bool esphome::logger::TaskLogBuffer::send_message_thread_safe | ( | uint8_t | level, |
| const char * | tag, | ||
| uint16_t | line, | ||
| TaskHandle_t | task_handle, | ||
| const char * | format, | ||
| va_list | args ) |
Definition at line 62 of file task_log_buffer_esp32.cpp.
|
inline |
Definition at line 70 of file task_log_buffer_esp32.h.