24class API_AUI_CORE AObjectBase {
26 friend class AAbstractSignal;
29 friend class SignalSlotTest;
30 friend class PropertyTest;
31 friend class PropertyPrecomputedTest;
34 virtual ~AObjectBase() =
default;
35 AObjectBase() =
default;
39 AObjectBase(AObjectBase&& rhs)
noexcept {
40 operator=(std::move(rhs));
43 AObjectBase(
const AObjectBase& rhs)
noexcept {
47 AObjectBase& operator=(
const AObjectBase& rhs)
noexcept {
52 AObjectBase& operator=(AObjectBase&& rhs)
noexcept {
56 AUI_ASSERTX(rhs.mIngoingConnections.empty(),
"AObjectBase move is valid only if no signals connected to it");
61 void clearAllIngoingConnections()
noexcept;
72 struct ReceiverConnectionOwner {
75 ReceiverConnectionOwner() =
default;
77 : value(std::move(connection)) {}
78 ReceiverConnectionOwner(
const ReceiverConnectionOwner&) =
default;
79 ReceiverConnectionOwner(ReceiverConnectionOwner&&) noexcept = default;
80 ReceiverConnectionOwner& operator=(const ReceiverConnectionOwner& rhs) {
89 ReceiverConnectionOwner& operator=(ReceiverConnectionOwner&& rhs)
noexcept {
94 value = std::move(rhs.value);
98 ~ReceiverConnectionOwner() {
103 void release() noexcept {
107 value->onBeforeReceiverSideDestroyed();
111 AVector<ReceiverConnectionOwner> mIngoingConnections;
#define AUI_ASSERTX(condition, what)
Asserts that the passed condition evaluates to true. Adds extra message string.
Definition Assert.h:74