13 const std::function<
void()>&
handler) {
19 const std::function<
void()>&
handler) {
27 std::shared_lock lock(mutex_);
37 std::unique_lock lock(mutex_);
40 for (
Observer* observer : observers_) {
41 observer->OnSyncSwitchUpdate(
value);
46 std::unique_lock lock(mutex_);
47 if (std::find(observers_.begin(), observers_.end(), observer) ==
49 observers_.push_back(observer);
54 std::unique_lock lock(mutex_);
55 observers_.erase(std::remove(observers_.begin(), observers_.end(), observer),
Observes changes to the SyncSwitch.
void AddObserver(Observer *observer) const
Threadsafe.
SyncSwitch(bool value=false)
void RemoveObserver(Observer *observer) const
Threadsafe.
void Execute(const Handlers &handlers) const
void SetSwitch(bool value)
const gchar FlBinaryMessengerMessageHandler handler
Represents the 2 code paths available when calling |SyncSwitchExecute|.
std::function< void()> false_handler
Handlers & SetIfFalse(const std::function< void()> &handler)
Sets the handler that will be executed if the |SyncSwitch| is false.
Handlers & SetIfTrue(const std::function< void()> &handler)
Sets the handler that will be executed if the |SyncSwitch| is true.
std::function< void()> true_handler