File indexing completed on 2025-10-31 09:16:38
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0011 
0012 #ifndef ROOT_RQ_OBJECT
0013 #define ROOT_RQ_OBJECT
0014 
0015 #include <TQObject.h>
0016 #include <Varargs.h>
0017 
0018 
0019 
0020 
0021 
0022 
0023 
0024 
0025 
0026 
0027 
0028 
0029 
0030 
0031 
0032 
0033 
0034 
0035 
0036 
0037 
0038 
0039 
0040 
0041 
0042 
0043 
0044 
0045 
0046 
0047 
0048 
0049 
0050 
0051 
0052 
0053 
0054 
0055 
0056 
0057 
0058 
0059 
0060 
0061 
0062 
0063 
0064 
0065 
0066 #define RQ_OBJECT1(sender_class)\
0067 private:\
0068 TQObjSender fQObject;\
0069 public:\
0070 TList *GetListOfSignals() const {return fQObject.GetListOfSignals();}\
0071 Bool_t Connect(const char *sig,const char *cl,void *rcvr,const char *slt)\
0072 {fQObject.SetSender(this);fQObject.SetSenderClassName(sender_class);return fQObject.Connect(sig,cl,rcvr,slt);}\
0073 Bool_t Disconnect(const char *sig=nullptr,void *rcvr=nullptr,const char *slt=nullptr){return fQObject.Disconnect(sig,rcvr,slt);}\
0074 void HighPriority(const char *signal_name,const char *slot_name=nullptr){fQObject.HighPriority(signal_name,slot_name);}\
0075 void LowPriority(const char *signal_name,const char *slot_name=nullptr){fQObject.LowPriority(signal_name,slot_name);}\
0076 template <typename... T> void EmitVA(const char *signal_name, Int_t nargs, const T&... params) \
0077 { fQObject.EmitVA(signal_name,nargs,params...); } \
0078 void Emit(const char *signal){EmitVA(signal, 0);} \
0079 template <typename T> void Emit(const char *signal, const T& arg) { EmitVA(signal,  1, arg); } \
0080 
0081 #define RQ_OBJECT2(sender_class)\
0082 void Destroyed(){Emit("Destroyed()");}\
0083 void ChangedBy(const char *method){Emit("ChangedBy(char*)",method);}\
0084 void Message(const char *msg){Emit("Message(char*)",msg);}\
0085 private:
0086 
0087 #define RQ_OBJECT(sender_class)\
0088    RQ_OBJECT1(sender_class)\
0089    RQ_OBJECT2(sender_class)
0090 
0091 #endif