Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / MONITOR / AliEventServerWindow.h
1 // Author: Mihai Niculesu 2013
2
3 /**************************************************************************
4  * Copyright(c) 1998-2013, ALICE Experiment at CERN, all rights reserved. *
5  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
6  * full copyright notice.                                                 *
7  **************************************************************************/
8
9 #ifndef AliEventServerWindow_H
10 #define AliEventServerWindow_H
11
12 #include <TObject.h>
13 #include <TString.h>
14 #include <TGFrame.h>
15 #include <TGLabel.h>
16
17 class TGTextButton;
18 class TGCheckButton;
19 class TGListBox;
20
21 class AliRecoServer;
22 class AliDimIntNotifier;
23
24 //______________________________________________________________________________
25 // Short description of AliEventServerWindow
26 //
27
28 class AliEventServerWindow : public TGMainFrame
29 {
30 public:
31 enum TOOLBUTTON{
32         TOOLBUTTON_START=1,
33         TOOLBUTTON_STOP,
34         TOOLBUTTON_PREFERENCES,
35         TOOLBUTTON_EXIT         
36   };
37   
38   AliEventServerWindow();
39   virtual ~AliEventServerWindow();
40
41   //------------------------------------------------------------------------------
42   // Handlers of DIM signals.
43   //------------------------------------------------------------------------------
44
45   void StartOfRun(Int_t run);
46   void EndOfRun(Int_t run);
47   
48   //------------------------------------------------------------------------------
49   // Handlers of button signals.
50   //------------------------------------------------------------------------------
51         void onStartServer();
52         void onStopServer();
53         void onExit();
54
55         void HandleToolBarAction(Int_t id=-1);
56
57    
58 private:
59   AliEventServerWindow(const AliEventServerWindow&);            // Not implemented
60   AliEventServerWindow& operator=(const AliEventServerWindow&); // Not implemented
61         void InitDIMListeners();
62         void FillRunsFromDatabase();
63         void SetupToolbar();
64         
65         void LaunchRecoServer();        
66         void StartReco(Int_t run);
67         bool StopRecoServer();
68         
69   // GUI components.
70   TGListBox     *fRunList;    // List-box for listing current runs.
71   TGTextButton  *fStartServButt;  // Start server for selected run.
72   TGTextButton  *fStopServButt;   // Close server for selected run.
73   TGTextButton  *fExitButt;   // Close server and do Exit.
74   
75   // DIM interface. Could do without members and just leak them ...
76   AliDimIntNotifier *fDimSORListener[5]; // DIM listeners for SOR.
77   AliDimIntNotifier *fDimEORListener[5]; // DIM listeners for EOR.
78
79   // server state & process management
80   Int_t fRunRunning;   // Run which is executed.
81         AliRecoServer* fRecoServer;
82
83
84   ClassDef(AliEventServerWindow, 0);
85 };
86
87 #endif