Internal Interface Wrap
API reference
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
NullMutexBackend Struct Reference

No-op mutex backend – all operations compile to nothing. More...

#include <PlatformMutex.h>

Public Types

using RecursiveMutexHandle = uint8_t
 Opaque handle for a recursive mutex (1 byte, unused by no-op backend)
 
using MutexHandle = uint8_t
 Opaque handle for a regular (non-recursive) mutex (1 byte, unused)
 

Static Public Member Functions

static constexpr void createRecursive (RecursiveMutexHandle *) noexcept
 Create a recursive mutex. Backend writes into *h.
 
static constexpr void destroyRecursive (RecursiveMutexHandle *) noexcept
 Destroy a recursive mutex pointed to by *h.
 
static constexpr bool lockRecursive (RecursiveMutexHandle *, uint32_t) noexcept
 Lock recursively with timeout (ticks). Returns true on success.
 
static constexpr bool tryLockRecursive (RecursiveMutexHandle *) noexcept
 Try lock (non-blocking). Returns true on success.
 
static constexpr void unlockRecursive (RecursiveMutexHandle *) noexcept
 Unlock recursive mutex.
 
static constexpr void createMutex (MutexHandle *) noexcept
 Create a regular (non-recursive) mutex. Backend writes into *h.
 
static constexpr void destroyMutex (MutexHandle *) noexcept
 Destroy a regular mutex pointed to by *h.
 
static constexpr bool lockMutex (MutexHandle *, uint32_t) noexcept
 Lock with timeout (ticks). Returns true on success.
 
static constexpr bool tryLockMutex (MutexHandle *) noexcept
 Try lock (non-blocking). Returns true on success.
 
static constexpr void unlockMutex (MutexHandle *) noexcept
 Unlock regular mutex.
 
static constexpr uint32_t getTickCount () noexcept
 Get current RTOS tick count.
 
static constexpr uint32_t msToTicks (uint32_t ms) noexcept
 Convert milliseconds to RTOS ticks.
 
static constexpr void yield () noexcept
 Yield to other tasks (no-op in single-threaded).
 

Static Public Attributes

static constexpr uint32_t MAX_DELAY = 0xFFFFFFFFU
 Infinite wait.
 
static constexpr uint32_t TICK_RATE_HZ = 1000U
 Assumed tick rate.
 

Detailed Description

No-op mutex backend – all operations compile to nothing.

This is the default backend when no RTOS or threading support is configured. Handle types are minimal (uint8_t) so mutex members occupy a single byte. Every operation is constexpr / inline and produces no machine code.

This struct also serves as the DOCUMENTATION of the backend contract: any concrete backend must provide the exact same set of static methods with compatible signatures.

Member Typedef Documentation

◆ MutexHandle

Opaque handle for a regular (non-recursive) mutex (1 byte, unused)

◆ RecursiveMutexHandle

Opaque handle for a recursive mutex (1 byte, unused by no-op backend)

Member Function Documentation

◆ createMutex()

static constexpr void NullMutexBackend::createMutex ( MutexHandle *  )
inlinestaticconstexprnoexcept

Create a regular (non-recursive) mutex. Backend writes into *h.

◆ createRecursive()

static constexpr void NullMutexBackend::createRecursive ( RecursiveMutexHandle *  )
inlinestaticconstexprnoexcept

Create a recursive mutex. Backend writes into *h.

◆ destroyMutex()

static constexpr void NullMutexBackend::destroyMutex ( MutexHandle *  )
inlinestaticconstexprnoexcept

Destroy a regular mutex pointed to by *h.

◆ destroyRecursive()

static constexpr void NullMutexBackend::destroyRecursive ( RecursiveMutexHandle *  )
inlinestaticconstexprnoexcept

Destroy a recursive mutex pointed to by *h.

◆ getTickCount()

static constexpr uint32_t NullMutexBackend::getTickCount ( )
inlinestaticconstexprnoexcept

Get current RTOS tick count.

◆ lockMutex()

static constexpr bool NullMutexBackend::lockMutex ( MutexHandle *  ,
uint32_t   
)
inlinestaticconstexprnoexcept

Lock with timeout (ticks). Returns true on success.

◆ lockRecursive()

static constexpr bool NullMutexBackend::lockRecursive ( RecursiveMutexHandle *  ,
uint32_t   
)
inlinestaticconstexprnoexcept

Lock recursively with timeout (ticks). Returns true on success.

◆ msToTicks()

static constexpr uint32_t NullMutexBackend::msToTicks ( uint32_t  ms)
inlinestaticconstexprnoexcept

Convert milliseconds to RTOS ticks.

◆ tryLockMutex()

static constexpr bool NullMutexBackend::tryLockMutex ( MutexHandle *  )
inlinestaticconstexprnoexcept

Try lock (non-blocking). Returns true on success.

◆ tryLockRecursive()

static constexpr bool NullMutexBackend::tryLockRecursive ( RecursiveMutexHandle *  )
inlinestaticconstexprnoexcept

Try lock (non-blocking). Returns true on success.

◆ unlockMutex()

static constexpr void NullMutexBackend::unlockMutex ( MutexHandle *  )
inlinestaticconstexprnoexcept

Unlock regular mutex.

◆ unlockRecursive()

static constexpr void NullMutexBackend::unlockRecursive ( RecursiveMutexHandle *  )
inlinestaticconstexprnoexcept

Unlock recursive mutex.

◆ yield()

static constexpr void NullMutexBackend::yield ( )
inlinestaticconstexprnoexcept

Yield to other tasks (no-op in single-threaded).

Member Data Documentation

◆ MAX_DELAY

constexpr uint32_t NullMutexBackend::MAX_DELAY = 0xFFFFFFFFU
staticconstexpr

Infinite wait.

◆ TICK_RATE_HZ

constexpr uint32_t NullMutexBackend::TICK_RATE_HZ = 1000U
staticconstexpr

Assumed tick rate.


The documentation for this struct was generated from the following file: