FastLED 3.9.15
Loading...
Searching...
No Matches
async_logger.h File Reference

Detailed Description

ISR-safe async logger using SPSC queue backend (zero heap allocation)

Definition in file async_logger.h.

#include "fl/log/async_log_queue.h"
#include "fl/stl/int.h"
#include "fl/stl/singleton.h"
#include "fl/task/task.h"
#include "fl/stl/noexcept.h"
+ Include dependency graph for async_logger.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  fl::AsyncLogger
 ISR-safe async logger wrapper (zero heap allocation) Uses embedded AsyncLogQueue instead of heap-allocated pointer Registers itself automatically in ActiveLoggerRegistry on first access. More...
 
struct  fl::detail::ActiveLoggerRegistry
 Active logger registry for iteration (flush operations) Only tracks loggers that have been instantiated via template access. More...
 
class  fl::detail::AsyncLoggerServiceTask
 Auto-instantiating task for async logger servicing Registers itself with fl::task::Scheduler when first accessed Only instantiated if at least one async logger is used (linker removes if unused) More...
 
struct  fl::detail::AudioLoggerInfo
 
struct  fl::detail::FlexIOLoggerInfo
 
struct  fl::detail::InterruptLoggerInfo
 
struct  fl::detail::ObjectFLEDLoggerInfo
 
struct  fl::detail::ParlioLoggerInfo
 Info providers for each logger category Used to supply category name, define name, and enabled status. More...
 
struct  fl::detail::RmtLoggerInfo
 
struct  fl::detail::SpiLoggerInfo
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 
namespace  fl::detail
 Compile-time linker keep-alive hook for a single fl::Bus.
 

Enumerations

enum class  fl::LogCategory : fl::u8 {
  fl::PARLIO_ISR = 0 , fl::PARLIO_MAIN = 1 , fl::RMT_ISR = 2 , fl::RMT_MAIN = 3 ,
  fl::SPI_ISR = 4 , fl::SPI_MAIN = 5 , fl::AUDIO_ISR = 6 , fl::AUDIO_MAIN = 7 ,
  fl::INTERRUPT_ISR = 8 , fl::INTERRUPT_MAIN = 9 , fl::MAX_CATEGORIES = 10
}
 Logger category identifiers for registry-based access Each category has separate ISR and main thread loggers (SPSC requirement) More...
 

Functions

template<typename InfoProvider>
void fl::detail::checkLoggerEnabled ()
 Check if logger is enabled and print error once if not.
 
template<fl::size N, typename InfoProvider>
AsyncLoggerfl::get_async_logger_by_index ()
 Template-based logger accessor with auto-registration and enablement check.
 
AsyncLoggerfl::get_audio_async_logger_isr ()
 
AsyncLoggerfl::get_audio_async_logger_main ()
 
AsyncLoggerfl::get_flexio_async_logger_isr ()
 
AsyncLoggerfl::get_flexio_async_logger_main ()
 
AsyncLoggerfl::get_interrupt_async_logger_isr ()
 
AsyncLoggerfl::get_interrupt_async_logger_main ()
 
AsyncLoggerfl::get_objectfled_async_logger_isr ()
 
AsyncLoggerfl::get_objectfled_async_logger_main ()
 
AsyncLoggerfl::get_parlio_async_logger_isr ()
 
AsyncLoggerfl::get_parlio_async_logger_main ()
 
AsyncLoggerfl::get_rmt_async_logger_isr ()
 
AsyncLoggerfl::get_rmt_async_logger_main ()
 
AsyncLoggerfl::get_spi_async_logger_isr ()
 
AsyncLoggerfl::get_spi_async_logger_main ()
 
void fl::detail::printLoggerDisabledError (const char *category_name, const char *define_name)
 Print error message for disabled logger (non-template helper) Called from checkLoggerEnabled template function IMPORTANT: This must NOT be inline - needs external linkage for cross-TU calls.