GSI Object Oriented Online Offline (Go4)  GO4-6.3.0
TGo4Sniffer.h
Go to the documentation of this file.
1 // $Id$
2 //-----------------------------------------------------------------------
3 // The GSI Online Offline Object Oriented (Go4) Project
4 // Experiment Data Processing at EE department, GSI
5 //-----------------------------------------------------------------------
6 // Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7 // Planckstr. 1, 64291 Darmstadt, Germany
8 // Contact: http://go4.gsi.de
9 //-----------------------------------------------------------------------
10 // This software can be used under the license agreements as stated
11 // in Go4License.txt file which is part of the distribution.
12 //-----------------------------------------------------------------------
13 
14 #ifndef TGO4SNIFFER_H
15 #define TGO4SNIFFER_H
16 
17 #include "TRootSnifferFull.h"
18 #include "TGo4AnalysisSniffer.h"
19 #include "TGo4MsgList.h"
20 
22 class TGraph;
23 class TGo4Ratemeter;
24 class THttpServer;
25 
26 class TGo4Sniffer : public TRootSnifferFull,
27  public TGo4AnalysisSniffer {
28 
29  protected:
30 
32 
33  TGraph *fEventRate{nullptr};
34 
36 
38 
40 
42  Bool_t fbPythonBound{kFALSE};
43 
44  void ScanObjectProperties(TRootSnifferScanRec &rec, TObject *obj) override;
45 
47  virtual void SendStatusMessage(Int_t level, Bool_t printout, const TString &text);
48 
50  Bool_t HasRestrictMethod();
51 
53  Bool_t HasProduceMultiMethod();
54 
56  void RestrictGo4(const char *path, const char *options);
57 
59  Bool_t HasAutoLoadMethod();
60 
62  Bool_t SetAutoLoadGo4(const char *script);
63 
64  static THttpServer *gHttpServer;
65 
66  public:
67 
68  static THttpServer *GetHttpServer();
69 
70  static Bool_t CreateEngine(const char *name);
71 
72  TGo4Sniffer(const char *name);
73  virtual ~TGo4Sniffer();
74 
75  void ScanRoot(TRootSnifferScanRec &rec) override;
76 
77  void *FindInHierarchy(const char *path, TClass **cl = nullptr, TDataMember **member = nullptr, Int_t *chld = nullptr) override;
78 
79  // ========= methods registered as command and available from web interface =========
80 
81  Bool_t CmdStart();
82  Bool_t CmdStop();
83  Bool_t CmdClear();
84  Bool_t CmdRestart();
85  Bool_t CmdClose();
86  Bool_t CmdOpenFile(const char *fname);
87  Bool_t CmdCloseFiles();
88  Bool_t CmdExit();
89  Bool_t CmdClearObject(const char *objname);
90  Bool_t CmdDeleteObject(const char *objname);
91  Bool_t CmdExecute(const char *exeline);
92 
93  // === methods used via http interface by Go4GUI ===============
94 
95  Bool_t AddAnalysisObject(TObject *obj);
96 
97  Bool_t RemoteTreeDraw(const char *histoname,
98  const char *treename,
99  const char *varexpr,
100  const char *cutexpr);
101 
102  TObject *CreateItemStatus(const char *itemname);
103 
105  void SetTitle(const char *title = "") override;
106 
108  void RatemeterUpdate(TGo4Ratemeter *) override;
109 
111  void StatusMessage(int level, Bool_t printout, const TString &) override;
112 
114  void ProcessSnifferEvents() override;
115 
116 
117  ClassDefOverride(TGo4Sniffer, 1); // Sniffer of Go4 analysis objects for THttpServer
118 };
119 
120 
121 #endif
TGo4MsgList fDebugOutput
Definition: TGo4Sniffer.h:37
Bool_t HasRestrictMethod()
Bool_t CmdOpenFile(const char *fname)
Bool_t fbPythonBound
Definition: TGo4Sniffer.h:42
Bool_t CmdCloseFiles()
TGo4MsgList fStatusMessages
Definition: TGo4Sniffer.h:39
Bool_t CmdExecute(const char *exeline)
Bool_t CmdRestart()
Bool_t CmdExit()
void StatusMessage(int level, Bool_t printout, const TString &) override
TGo4AnalysisWebStatus * fAnalysisStatus
Definition: TGo4Sniffer.h:31
Bool_t HasProduceMultiMethod()
Bool_t CmdStop()
Bool_t RemoteTreeDraw(const char *histoname, const char *treename, const char *varexpr, const char *cutexpr)
Bool_t CmdClose()
void SetTitle(const char *title="") override
TGo4Sniffer(const char *name)
Definition: TGo4Sniffer.cxx:74
void * FindInHierarchy(const char *path, TClass **cl=nullptr, TDataMember **member=nullptr, Int_t *chld=nullptr) override
void ScanObjectProperties(TRootSnifferScanRec &rec, TObject *obj) override
void ProcessSnifferEvents() override
static THttpServer * gHttpServer
Definition: TGo4Sniffer.h:64
void RatemeterUpdate(TGo4Ratemeter *) override
virtual ~TGo4Sniffer()
Bool_t CmdClear()
void ScanRoot(TRootSnifferScanRec &rec) override
Bool_t CmdClearObject(const char *objname)
virtual void SendStatusMessage(Int_t level, Bool_t printout, const TString &text)
TObject * CreateItemStatus(const char *itemname)
static Bool_t CreateEngine(const char *name)
Definition: TGo4Sniffer.cxx:51
Bool_t SetAutoLoadGo4(const char *script)
ClassDefOverride(TGo4Sniffer, 1)
Bool_t CmdStart()
TGo4Ratemeter * fRatemeter
Definition: TGo4Sniffer.h:35
static THttpServer * GetHttpServer()
Definition: TGo4Sniffer.cxx:44
Bool_t CmdDeleteObject(const char *objname)
Bool_t AddAnalysisObject(TObject *obj)
void RestrictGo4(const char *path, const char *options)
TGraph * fEventRate
Definition: TGo4Sniffer.h:33
Bool_t HasAutoLoadMethod()