libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
LibXR::Flag::Plain Class Reference

普通标志位(非原子)/ Non-atomic flag More...

#include <flag.hpp>

Public Member Functions

 Plain ()=default
 构造函数,默认未置位 / Constructor, default cleared
 
void Set () noexcept
 置位标志 / Set the flag
 
void Clear () noexcept
 清除标志 / Clear the flag
 
bool IsSet () const noexcept
 判断是否已置位 / Check whether the flag is set
 
bool TestAndSet () noexcept
 测试并置位:置位并返回旧状态 / Test-and-set: set and return previous state
 
bool TestAndClear () noexcept
 测试并清除:清除并返回旧状态 / Test-and-clear: clear and return previous state
 
bool Exchange (bool set_value) noexcept
 交换:写入指定值并返回旧状态 / Exchange: set to desired value and return previous state
 

Private Attributes

bool value_
 标志值(false=clear, true=set)/ Flag value (false=clear, true=set)
 

Detailed Description

普通标志位(非原子)/ Non-atomic flag

不具备并发安全性;仅适用于单线程环境或外部已保证互斥/临界区保护的场景。 Not thread-safe; use only in single-threaded context or when externally synchronized.

Definition at line 114 of file flag.hpp.

Member Function Documentation

◆ Clear()

void LibXR::Flag::Plain::Clear ( )
inlinenoexcept

清除标志 / Clear the flag

Definition at line 130 of file flag.hpp.

130{ value_ = false; }
bool value_
标志值(false=clear, true=set)/ Flag value (false=clear, true=set)
Definition flag.hpp:182

◆ Exchange()

bool LibXR::Flag::Plain::Exchange ( bool set_value)
inlinenodiscardnoexcept

交换:写入指定值并返回旧状态 / Exchange: set to desired value and return previous state

Parameters
set_value期望写入的值 / Desired value to write
Returns
true 旧值为 set / Old value was set
false 旧值为 clear / Old value was clear

Definition at line 174 of file flag.hpp.

175 {
176 bool old = value_;
177 value_ = set_value;
178 return old;
179 }

◆ IsSet()

bool LibXR::Flag::Plain::IsSet ( ) const
inlinenodiscardnoexcept

判断是否已置位 / Check whether the flag is set

Returns
true 已置位 / Flag is set
false 未置位 / Flag is clear

Definition at line 138 of file flag.hpp.

138{ return value_; }

◆ Set()

void LibXR::Flag::Plain::Set ( )
inlinenoexcept

置位标志 / Set the flag

Definition at line 125 of file flag.hpp.

125{ value_ = true; }

◆ TestAndClear()

bool LibXR::Flag::Plain::TestAndClear ( )
inlinenodiscardnoexcept

测试并清除:清除并返回旧状态 / Test-and-clear: clear and return previous state

Returns
true 先前已置位 / Was set
false 先前未置位 / Was clear

Definition at line 159 of file flag.hpp.

160 {
161 bool old = value_;
162 value_ = false;
163 return old;
164 }

◆ TestAndSet()

bool LibXR::Flag::Plain::TestAndSet ( )
inlinenodiscardnoexcept

测试并置位:置位并返回旧状态 / Test-and-set: set and return previous state

Returns
true 先前已置位 / Was already set
false 先前未置位 / Was clear

Definition at line 146 of file flag.hpp.

147 {
148 bool old = value_;
149 value_ = true;
150 return old;
151 }

Field Documentation

◆ value_

bool LibXR::Flag::Plain::value_
private
Initial value:
{
false}

标志值(false=clear, true=set)/ Flag value (false=clear, true=set)

Definition at line 182 of file flag.hpp.

182 {
183 false};

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