36 enum class ConnectionKind;
46 PendingSlot(
const PendingSlot &) =
delete;
47 PendingSlot(PendingSlot &&) =
default;
49 PendingSlot(SignalBase *sender, std::unique_ptr<Internal::BentoAbstract> signal_Bento, SlotBase *receiver,
50 std::unique_ptr<Internal::BentoAbstract> slot_Bento,
51 std::unique_ptr<Internal::TeaCupAbstract> teaCup_Data);
53 SignalBase *sender()
const {
57 SlotBase *receiver()
const {
61 std::unique_ptr<Internal::BentoAbstract> internal_moveSlotBento() {
62 return std::move(m_slot_Bento);
65 std::unique_ptr<Internal::TeaCupAbstract> internal_moveTeaCup() {
66 return std::move(m_teaCup_Data);
69 void operator()()
const;
73 std::unique_ptr<Internal::BentoAbstract> m_signal_Bento;
75 std::unique_ptr<Internal::BentoAbstract> m_slot_Bento;
76 std::unique_ptr<Internal::TeaCupAbstract> m_teaCup_Data;
83 SlotBase(
const SlotBase &);
90 SignalBase *sender()
const;
93 std::set<SignalBase *> internal_senderList()
const;
96 static SignalBase *&get_threadLocal_currentSender();
99 mutable libguarded::SharedList<
const SignalBase *> m_possibleSenders;
101 virtual bool compareThreads()
const;
102 virtual void queueSlot(PendingSlot data, ConnectionKind type);
104 friend class SignalBase;
106 template<
class Sender,
class SignalClass,
class ...SignalArgTypes,
class ...Ts>
107 friend void activate(Sender &sender,
void (SignalClass::*signal)(SignalArgTypes...), Ts &&... Vs);
109 template<
class Sender,
class Receiver>
110 friend bool internal_disconnect(
const Sender &sender,
const Internal::BentoAbstract *signalBento,
111 const Receiver *receiver,
const Internal::BentoAbstract *slotBento);
#define LIB_SIG_EXPORT
Definition: cs_macro.h:28