AUI Framework  master
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
React.h
    1/*
    2 * AUI Framework - Declarative UI toolkit for modern C++20
    3 * Copyright (C) 2020-2025 Alex2772 and Contributors
    4 *
    5 * SPDX-License-Identifier: MPL-2.0
    6 *
    7 * This Source Code Form is subject to the terms of the Mozilla Public
    8 * License, v. 2.0. If a copy of the MPL was not distributed with this
    9 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   10 */
   11
   12#pragma once
   13
   14#include <AUI/Common/AObjectBase.h>
   15
   22namespace aui::react {
   23struct DependencyObserver : AObjectBase {
   24    friend struct API_AUI_CORE DependencyObserverRegistrar;
   25
   26public:
   27    virtual void invalidate() = 0;
   28
   29private:
   30    AVector<AAbstractSignal::AutoDestroyedConnection> mObserverConnections;
   31};
   32
   33struct API_AUI_CORE DependencyObserverRegistrar {
   34    explicit DependencyObserverRegistrar(DependencyObserver& observer);
   35    ~DependencyObserverRegistrar();
   36
   40    static void addDependency(const AAbstractSignal& signal);
   41
   42private:
   43    DependencyObserver* mPrevObserver;
   44};
   45
   46}   // namespace aui::react
Base class for signal.
Definition AAbstractSignal.h:366
A std::vector with AUI extensions.
Definition AVector.h:39
Reactive expressions.
Definition React.h:22
static void addDependency(const AAbstractSignal &signal)
Adds observer to the specified signal, if called inside a reactive expression evaluation.
Definition React.h:23