File indexing completed on 2025-11-06 10:17:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT_TPyDispatcher
0013 #define ROOT_TPyDispatcher
0014
0015
0016 #include "TObject.h"
0017
0018 class TDNDData;
0019 class TEveDigitSet;
0020 class TEveElement;
0021 class TEveTrack;
0022 class TEveWindow;
0023 class TGFrame;
0024 class TGListTreeItem;
0025 class TGMdiFrame;
0026 class TGLPhysicalShape;
0027 class TGShutterItem;
0028 class TGLVEntry;
0029 class TGLViewerBase;
0030 class TGVFileSplitter;
0031 class TList;
0032 class TObject;
0033 class TPad;
0034 class TProofProgressInfo;
0035 class TQCommand;
0036 class TSlave;
0037 class TSocket;
0038 class TVirtualPad;
0039
0040 struct Event_t;
0041
0042
0043 struct _object;
0044 typedef _object PyObject;
0045
0046
0047 class TPyDispatcher : public TObject {
0048 public:
0049 TPyDispatcher(PyObject *callable);
0050 TPyDispatcher(const TPyDispatcher &);
0051 TPyDispatcher &operator=(const TPyDispatcher &);
0052 ~TPyDispatcher() override;
0053
0054 public:
0055 PyObject *DispatchVA(const char *format = 0, ...);
0056 PyObject *DispatchVA1(const char *clname, void *obj, const char *format, ...);
0057
0058
0059
0060
0061 PyObject *Dispatch() { return DispatchVA(0); }
0062 PyObject *Dispatch(const char *param) { return DispatchVA("s", param); }
0063 PyObject *Dispatch(Double_t param) { return DispatchVA("d", param); }
0064 PyObject *Dispatch(Long_t param) { return DispatchVA("l", param); }
0065 PyObject *Dispatch(Long64_t param) { return DispatchVA("L", param); }
0066
0067
0068 PyObject *Dispatch(Bool_t param) { return DispatchVA("i", param); }
0069 PyObject *Dispatch(char *param) { return DispatchVA("s", param); }
0070 PyObject *Dispatch(const char *text, Int_t len) { return DispatchVA("si", text, len); }
0071 PyObject *Dispatch(Int_t param) { return DispatchVA("i", param); }
0072 PyObject *Dispatch(Int_t x, Int_t y) { return DispatchVA("ii", x, y); }
0073 PyObject *Dispatch(ULong_t param) { return DispatchVA("k", param); }
0074
0075
0076 PyObject *Dispatch(Event_t *event) { return DispatchVA1("Event_t", event, 0); }
0077 PyObject *Dispatch(Event_t *event, ULong_t wid) { return DispatchVA1("Event_t", event, "k", wid); }
0078 PyObject *Dispatch(TEveDigitSet *qs, Int_t idx) { return DispatchVA1("TEveDigitSet", qs, "i", idx); }
0079 PyObject *Dispatch(TEveElement *el) { return DispatchVA1("TEveElement", el, 0); }
0080 PyObject *Dispatch(TEveTrack *et) { return DispatchVA1("TEveTrack", et, 0); }
0081 PyObject *Dispatch(TEveWindow *window) { return DispatchVA1("TEveWindow", window, 0); }
0082 PyObject *Dispatch(TGFrame *frame) { return DispatchVA1("TGFrame", frame, 0); }
0083 PyObject *Dispatch(TGFrame *frame, Int_t btn) { return DispatchVA1("TGFrame", frame, "i", btn); }
0084 PyObject *Dispatch(TGFrame *frame, Int_t btn, Int_t x, Int_t y)
0085 {
0086 return DispatchVA1("TGFrame", frame, "iii", btn, x, y);
0087 }
0088 PyObject *Dispatch(TGFrame *frame, UInt_t keysym, UInt_t mask)
0089 {
0090 return DispatchVA1("TGFrame", frame, "II", keysym, mask);
0091 }
0092 PyObject *Dispatch(TGListTreeItem *entry) { return DispatchVA1("TGListTreeItem", entry, 0); }
0093 PyObject *Dispatch(TGListTreeItem *entry, UInt_t mask) { return DispatchVA1("TGListTreeItem", entry, "I", mask); }
0094 PyObject *Dispatch(TGListTreeItem *entry, UInt_t keysym, UInt_t mask)
0095 {
0096 return DispatchVA1("TGListTreeItem", entry, "II", keysym, mask);
0097 }
0098 PyObject *Dispatch(TGListTreeItem *entry, Int_t btn) { return DispatchVA1("TGListTreeItem", entry, "i", btn); }
0099 PyObject *Dispatch(TGListTreeItem *entry, Int_t btn, Int_t x, Int_t y)
0100 {
0101 return DispatchVA1("TGListTreeItem", entry, "iii", btn, x, y);
0102 }
0103 PyObject *Dispatch(TGLVEntry *entry, Int_t btn) { return DispatchVA1("TGLVEntry", entry, "i", btn); }
0104 PyObject *Dispatch(TGLVEntry *entry, Int_t btn, Int_t x, Int_t y)
0105 {
0106 return DispatchVA1("TGLVEntry", entry, "iii", btn, x, y);
0107 }
0108 PyObject *Dispatch(TGLViewerBase *viewer) { return DispatchVA1("TGLViewerBase", viewer, 0); }
0109 PyObject *Dispatch(TGLPhysicalShape *shape) { return DispatchVA1("TGLPhysicalShape", shape, 0); }
0110 PyObject *Dispatch(TGLPhysicalShape *shape, UInt_t u1, UInt_t u2)
0111 {
0112 return DispatchVA1("TGLPhysicalShape", shape, "II", u1, u2);
0113 }
0114 PyObject *Dispatch(TGMdiFrame *frame) { return DispatchVA1("TGMdiFrame", frame, 0); }
0115 PyObject *Dispatch(TGShutterItem *item) { return DispatchVA1("TGShutterItem", item, 0); }
0116 PyObject *Dispatch(TGVFileSplitter *frame) { return DispatchVA1("TGVFileSplitter", frame, 0); }
0117 PyObject *Dispatch(TList *objs) { return DispatchVA1("TList", objs, 0); }
0118 PyObject *Dispatch(TObject *obj) { return DispatchVA1("TObject", obj, 0); }
0119 PyObject *Dispatch(TObject *obj, Bool_t check) { return DispatchVA1("TObject", obj, "i", check); }
0120 PyObject *Dispatch(TObject *obj, UInt_t state) { return DispatchVA1("TObject", obj, "I", state); }
0121 PyObject *Dispatch(TObject *obj, UInt_t button, UInt_t state)
0122 {
0123 return DispatchVA1("TObject", obj, "II", button, state);
0124 }
0125 PyObject *Dispatch(TSocket *sock) { return DispatchVA1("TSocket", sock, 0); }
0126 PyObject *Dispatch(TVirtualPad *pad) { return DispatchVA1("TVirtualPad", pad, 0); }
0127
0128 PyObject *Dispatch(TPad *selpad, TObject *selected, Int_t event);
0129 PyObject *Dispatch(Int_t event, Int_t x, Int_t y, TObject *selected);
0130 PyObject *Dispatch(TVirtualPad *pad, TObject *obj, Int_t event);
0131 PyObject *Dispatch(TGListTreeItem *item, TDNDData *data);
0132 PyObject *Dispatch(const char *name, const TList *attr);
0133
0134
0135 PyObject *Dispatch(const char *msg, Bool_t all) { return DispatchVA("si", msg, all); }
0136 PyObject *Dispatch(Long64_t total, Long64_t processed) { return DispatchVA("LL", total, processed); }
0137 PyObject *Dispatch(Long64_t total, Long64_t processed, Long64_t bytesread, Float_t initTime, Float_t procTime,
0138 Float_t evtrti, Float_t mbrti)
0139 {
0140 return DispatchVA("LLLffff", total, processed, bytesread, initTime, procTime, evtrti, mbrti);
0141 }
0142 PyObject *Dispatch(Long64_t total, Long64_t processed, Long64_t bytesread, Float_t initTime, Float_t procTime,
0143 Float_t evtrti, Float_t mbrti, Int_t actw, Int_t tses, Float_t eses)
0144 {
0145 return DispatchVA("LLLffffiif", total, processed, bytesread, initTime, procTime, evtrti, mbrti, actw, tses, eses);
0146 }
0147 PyObject *Dispatch(const char *sel, Int_t sz, Long64_t fst, Long64_t ent)
0148 {
0149 return DispatchVA("siLL", sel, sz, fst, ent);
0150 }
0151 PyObject *Dispatch(const char *msg, Bool_t status, Int_t done, Int_t total)
0152 {
0153 return DispatchVA("siii", msg, status, done, total);
0154 }
0155
0156 PyObject *Dispatch(TSlave *slave, Long64_t total, Long64_t processed)
0157 {
0158 return DispatchVA1("TSlave", slave, "LL", total, processed);
0159 }
0160 PyObject *Dispatch(TProofProgressInfo *pi) { return DispatchVA1("TProofProgressInfo", pi, 0); }
0161 PyObject *Dispatch(TSlave *slave) { return DispatchVA("TSlave", slave, 0); }
0162 PyObject *Dispatch(TSlave *slave, TProofProgressInfo *pi);
0163
0164 private:
0165 PyObject *fCallable;
0166 };
0167
0168 #endif