GSI Object Oriented Online Offline (Go4)  GO4-6.3.0
TGo4Slave.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 TGO4SLAVE_H
15 #define TGO4SLAVE_H
16 
17 #include "TGo4TaskOwner.h"
18 
19 class TGo4Status;
20 class TGo4TaskStatus;
21 class TGo4Command;
22 class TGo4ThreadHandler;
23 class TMutex;
24 class TObject;
25 class TString;
26 
30 class TGo4Slave : public TGo4TaskOwner {
31  private:
32 
37  Bool_t fbMainIsRunning{kFALSE};
38 
39  protected:
40 
47  virtual void UpdateStatus(TGo4TaskStatus *state);
48 
49 
50  public:
51  TGo4Slave();
52 
53  TGo4Slave(const char *name, Bool_t isserver=kTRUE, const char *serverhost="localhost", UInt_t negotport=5000);
54 
55  virtual ~TGo4Slave();
56 
61  virtual void Start();
62 
67  virtual void Stop();
68 
74  virtual void KillMain();
75 
81  virtual void RestartMain();
82 
83  virtual void Terminate (Bool_t termapp=kTRUE);
84 
85  virtual void TerminateFast ();
86 
93  virtual TGo4TaskStatus *CreateStatus();
94 
95  Bool_t MainIsRunning() const { return fbMainIsRunning; }
96 
99 
101  void SendObject(TObject *obj, const char *receiver = nullptr);
102 
104  void SendStatus(TGo4Status *stat, const char *receiver = nullptr);
105 
106 
111  virtual Int_t Initialization();
112 
114 
116  void SendStatusBuffer();
117 
122  virtual void SendStatusMessage(Int_t level, Bool_t printout, const TString &text);
123 
130  void UpdateStatusBuffer();
131 
136  virtual void ExecuteString(const char *command);
137 
138 };
139 
140 #endif //TGO4SLAVE_H
void SendObject(TObject *obj, const char *receiver=nullptr)
Definition: TGo4Slave.cxx:115
virtual Int_t Initialization()
Definition: TGo4Slave.cxx:127
virtual void Terminate(Bool_t termapp=kTRUE)
Definition: TGo4Slave.cxx:86
TGo4ThreadHandler * GetThreadHandler()
Definition: TGo4Slave.cxx:133
void SendStatusBuffer()
Definition: TGo4Slave.cxx:139
virtual TGo4TaskStatus * CreateStatus()
Definition: TGo4Slave.cxx:97
virtual void UpdateStatus(TGo4TaskStatus *state)
Definition: TGo4Slave.cxx:104
virtual void TerminateFast()
Definition: TGo4Slave.cxx:92
virtual void ExecuteString(const char *command)
Definition: TGo4Slave.cxx:157
virtual void Start()
Definition: TGo4Slave.cxx:63
virtual void Stop()
Definition: TGo4Slave.cxx:70
Bool_t fbMainIsRunning
Definition: TGo4Slave.h:37
void SendStatus(TGo4Status *stat, const char *receiver=nullptr)
Definition: TGo4Slave.cxx:121
virtual void SendStatusMessage(Int_t level, Bool_t printout, const TString &text)
Definition: TGo4Slave.cxx:145
Bool_t MainIsRunning() const
Definition: TGo4Slave.h:95
virtual void RestartMain()
Definition: TGo4Slave.cxx:81
void UpdateStatusBuffer()
Definition: TGo4Slave.cxx:152
virtual void KillMain()
Definition: TGo4Slave.cxx:76
virtual ~TGo4Slave()
Definition: TGo4Slave.cxx:57
TGo4Command * NextCommand()
Definition: TGo4Slave.cxx:110