RTOS Wrapper
API reference
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
hf::FlagsReader< FlagId, kCount > Class Template Referenceabstract

Read-side ABC for FlagsSaver. More...

#include <FlagsSaver.h>

Inheritance diagram for hf::FlagsReader< FlagId, kCount >:
hf::FlagsSaver< FlagId, kCount >

Public Types

using Snapshot = FlagsSnapshot< kWordCount >
 

Public Member Functions

virtual ~FlagsReader () noexcept=default
 
virtual bool IsSet (FlagId id) const noexcept=0
 True if id is currently set.
 
virtual void Snapshot_ (Snapshot &out) const noexcept=0
 Copy current bit state + sequence + last-change timestamp into out.
 
virtual uint32_t Seq () const noexcept=0
 
virtual uint32_t LastChangeMs () const noexcept=0
 Most recent now_ms value passed to Set / Clear (0 if never).
 
virtual bool WaitForChange (uint32_t timeout_ms) noexcept=0
 Block up to timeout_ms waiting for any change since the last call to WaitForChange or ClearWaitEvent.
 
virtual bool ClearWaitEvent () noexcept=0
 Discard any pending change-signal without waiting.
 

Static Public Attributes

static constexpr std::size_t kWordCount
 

Detailed Description

template<typename FlagId, std::size_t kCount>
class hf::FlagsReader< FlagId, kCount >

Read-side ABC for FlagsSaver.

Member Typedef Documentation

◆ Snapshot

template<typename FlagId , std::size_t kCount>
using hf::FlagsReader< FlagId, kCount >::Snapshot = FlagsSnapshot<kWordCount>

Constructor & Destructor Documentation

◆ ~FlagsReader()

template<typename FlagId , std::size_t kCount>
virtual hf::FlagsReader< FlagId, kCount >::~FlagsReader ( )
virtualdefaultnoexcept

Member Function Documentation

◆ ClearWaitEvent()

template<typename FlagId , std::size_t kCount>
virtual bool hf::FlagsReader< FlagId, kCount >::ClearWaitEvent ( )
pure virtualnoexcept

Discard any pending change-signal without waiting.

Implemented in hf::FlagsSaver< FlagId, kCount >.

◆ IsSet()

template<typename FlagId , std::size_t kCount>
virtual bool hf::FlagsReader< FlagId, kCount >::IsSet ( FlagId  id) const
pure virtualnoexcept

True if id is currently set.

Implemented in hf::FlagsSaver< FlagId, kCount >.

◆ LastChangeMs()

template<typename FlagId , std::size_t kCount>
virtual uint32_t hf::FlagsReader< FlagId, kCount >::LastChangeMs ( ) const
pure virtualnoexcept

Most recent now_ms value passed to Set / Clear (0 if never).

Implemented in hf::FlagsSaver< FlagId, kCount >.

◆ Seq()

template<typename FlagId , std::size_t kCount>
virtual uint32_t hf::FlagsReader< FlagId, kCount >::Seq ( ) const
pure virtualnoexcept

Monotonic change counter; increments on every Set/Clear that actually toggled state.

Implemented in hf::FlagsSaver< FlagId, kCount >.

◆ Snapshot_()

template<typename FlagId , std::size_t kCount>
virtual void hf::FlagsReader< FlagId, kCount >::Snapshot_ ( Snapshot &  out) const
pure virtualnoexcept

Copy current bit state + sequence + last-change timestamp into out.

Implemented in hf::FlagsSaver< FlagId, kCount >.

◆ WaitForChange()

template<typename FlagId , std::size_t kCount>
virtual bool hf::FlagsReader< FlagId, kCount >::WaitForChange ( uint32_t  timeout_ms)
pure virtualnoexcept

Block up to timeout_ms waiting for any change since the last call to WaitForChange or ClearWaitEvent.

Returns
true on signal; false on timeout / waiter unavailable.

Implemented in hf::FlagsSaver< FlagId, kCount >.

Member Data Documentation

◆ kWordCount

template<typename FlagId , std::size_t kCount>
constexpr std::size_t hf::FlagsReader< FlagId, kCount >::kWordCount
staticconstexpr
Initial value:
=
(kCount + 63U) / 64U > 0U ? (kCount + 63U) / 64U : 1U

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