Internal Interface Wrap
API reference
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
SoftChipSelectGuard< AssertFn, DeassertFn > Class Template Reference

RAII soft-CS: runs assert_fn on construction and deassert_fn on destruction (including early return / error paths). More...

#include <SoftChipSelectGuard.h>

Public Member Functions

 SoftChipSelectGuard (AssertFn assert_fn, DeassertFn deassert_fn) noexcept
 
 ~SoftChipSelectGuard () noexcept
 
 SoftChipSelectGuard (const SoftChipSelectGuard &)=delete
 
SoftChipSelectGuard & operator= (const SoftChipSelectGuard &)=delete
 
 SoftChipSelectGuard (SoftChipSelectGuard &&other) noexcept
 
SoftChipSelectGuard & operator= (SoftChipSelectGuard &&other) noexcept
 
void Release () noexcept
 Early deassert (idempotent). Destructor becomes a no-op.
 
bool OwnsCs () const noexcept
 

Private Attributes

DeassertFn deassert_
 
bool armed_
 

Detailed Description

template<typename AssertFn, typename DeassertFn>
class SoftChipSelectGuard< AssertFn, DeassertFn >

RAII soft-CS: runs assert_fn on construction and deassert_fn on destruction (including early return / error paths).

Template Parameters
AssertFnCallable void()
DeassertFnCallable void()

Typical STM32 soft-CS device usage (inside a bus lock):

SoftChipSelectGuard cs{[&]{ AssertCS(); }, [&]{ DeassertCS(); }};
// HAL_SPI_TransmitReceive...
RAII soft-CS: runs assert_fn on construction and deassert_fn on destruction (including early return /...
Definition SoftChipSelectGuard.h:32

Constructor & Destructor Documentation

◆ SoftChipSelectGuard() [1/3]

SoftChipSelectGuard< AssertFn, DeassertFn >::SoftChipSelectGuard ( AssertFn  assert_fn,
DeassertFn  deassert_fn 
)
inlinenoexcept

◆ ~SoftChipSelectGuard()

◆ SoftChipSelectGuard() [2/3]

◆ SoftChipSelectGuard() [3/3]

Member Function Documentation

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ OwnsCs()

bool SoftChipSelectGuard< AssertFn, DeassertFn >::OwnsCs ( ) const
inlinenoexcept

◆ Release()

void SoftChipSelectGuard< AssertFn, DeassertFn >::Release ( )
inlinenoexcept

Early deassert (idempotent). Destructor becomes a no-op.

Member Data Documentation

◆ armed_

◆ deassert_


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