HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
observable_not.hpp
1// Copyright 2020 Pokitec
2// All rights reserved.
3
4#pragma once
5
6#include "observable_unary.hpp"
7
8namespace tt::detail {
9
10template<typename OT>
11class observable_not final : public observable_unary<bool,OT> {
12public:
13 observable_not(std::shared_ptr<observable_base<OT>> const &operand) noexcept :
15
16 virtual bool load() const noexcept override {
17 ttlet lock = std::scoped_lock(observable_unary<bool,OT>::mutex);
18 return !this->operand_cache;
19 }
20
21 virtual bool store(bool const &new_value) noexcept override {
22 return this->operand->store(static_cast<OT>(!new_value));
23 }
24};
25
26}
Observable abstract base class.
Definition observable_base.hpp:29
Definition observable_not.hpp:11
virtual bool load() const noexcept override
Get the current value.
Definition observable_not.hpp:16
Definition observable_unary.hpp:11