5namespace Stroika::Frameworks::Led {
12 inline IdleManager::NonIdleContext::NonIdleContext ()
14 IdleManager::Get ().SetInIdleMode (
false);
15 ++IdleManager::Get ().fNonIdleContextCount;
17 inline IdleManager::NonIdleContext::~NonIdleContext ()
19 Assert (IdleManager::Get ().fNonIdleContextCount > 0);
20 --IdleManager::Get ().fNonIdleContextCount;
28 inline IdleManager::IdleManager ()
29 : fNonIdleContextCount{0}
30 , fIdleManagerOSImpl{nullptr}
32 , fNeedMgrIdleCalls{false}
36 inline IdleManager& IdleManager::Get ()
38 static IdleManager sThe_;
41 inline bool IdleManager::GetInIdleMode ()
const
45 inline void IdleManager::SetInIdleMode (
bool inIdleMode)
47 bool effectiveInIdleMode = inIdleMode and fNonIdleContextCount == 0;
48 bool enteringIdle = not fInIdleMode_ and effectiveInIdleMode;
49 fInIdleMode_ = effectiveInIdleMode;