private:\
TQObjSender fQObject;\
public:\
TList *GetListOfSignals() const {return fQObject.GetListOfSignals();}\
Bool_t Connect(const char *sig,const char *cl,void *rcvr,const char *slt)\
{fQObject.SetSender(this);fQObject.SetSenderClassName(sender_class);return fQObject.Connect(sig,cl,rcvr,slt);}\
Bool_t Disconnect(const char *sig=0,void *rcvr=0,const char *slt=0){return fQObject.Disconnect(sig,rcvr,slt);}\
void HighPriority(const char *signal_name,const char *slot_name=0){fQObject.HighPriority(signal_name,slot_name);}\
void LowPriority(const char *signal_name,const char *slot_name=0){fQObject.LowPriority(signal_name,slot_name);}\
template <
typename...
T>
void EmitVA(
const char *signal_name,
Int_t nargs,
const T&... params) \
{ fQObject.EmitVA(signal_name,nargs,params...); } \
void Emit(const char *signal){EmitVA(signal, 0);} \
template <typename T>
void Emit(
const char *signal,
const T& arg) { EmitVA(signal, 1, arg); } \