GSI Object Oriented Online Offline (Go4)  GO4-6.3.0
TGo4ClientTask.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 TGO4CLIENTTASK_H
15 #define TGO4CLIENTTASK_H
16 
17 #include "TGo4Task.h"
18 
19 #include "TGo4Command.h"
20 #include "TString.h"
21 
22 class TMutex;
23 class TGo4Command;
24 class TGo4BufferQueue;
25 class TGo4TaskHandler;
26 
33 class TGo4ClientTask : public TGo4Task {
34 
35  public:
36 
37  TGo4ClientTask(const char *name,
38  const char *serverhost = "localhost",
39  UInt_t negotiationport = 0,
40  Bool_t blockingmode = kTRUE,
41  Bool_t standalone = kFALSE,
42  Bool_t autostart = kFALSE,
43  Bool_t autocreate = kTRUE,
44  Bool_t ismaster = kFALSE,
45  Bool_t autoconnect = kTRUE);
46 
47  virtual ~TGo4ClientTask();
48 
53  Int_t Initialization() override;
54 
60  void Quit() override;
61 
68  TGo4TaskStatus *CreateStatus() override;
69 
70  TGo4TaskHandler *GetTaskHandler() override;
71 
75  void AddLocalCommand(TGo4Command *com);
76 
77  TGo4BufferQueue *GetCommandQueue(const char *task = nullptr) override;
78 
79  TGo4BufferQueue *GetStatusQueue(const char *task = nullptr) override;
80 
81  TGo4BufferQueue *GetDataQueue(const char *task = nullptr) override;
82 
88  Bool_t ConnectServer(const char *node, UInt_t negport,
90  const char *passwd = nullptr);
91 
98  Bool_t DisconnectServer(Bool_t isterminating=kFALSE);
99 
100  const char *GetServerHostName() const { return fxServerHostname.Data(); }
101 
102  Bool_t IsConnected() const { return fbServerConnected; }
103 
104  protected:
105 
112  void UpdateStatus(TGo4TaskStatus *state) override;
113 
114  private:
118 
124 
132  Bool_t fbAutoConnect{kFALSE};
133 
137  Bool_t fbServerConnected{kFALSE};
138 
139  ClassDefOverride(TGo4ClientTask,1)
140 };
141 
142 #endif //TGO4CLIENTTASK_H
Bool_t IsConnected() const
void UpdateStatus(TGo4TaskStatus *state) override
Int_t Initialization() override
TGo4BufferQueue * GetCommandQueue(const char *task=nullptr) override
TGo4BufferQueue * fxStatusQ
TGo4BufferQueue * GetDataQueue(const char *task=nullptr) override
Bool_t DisconnectServer(Bool_t isterminating=kFALSE)
Go4CommandMode_t
Definition: TGo4Command.h:27
TGo4ClientTask(const char *name, const char *serverhost="localhost", UInt_t negotiationport=0, Bool_t blockingmode=kTRUE, Bool_t standalone=kFALSE, Bool_t autostart=kFALSE, Bool_t autocreate=kTRUE, Bool_t ismaster=kFALSE, Bool_t autoconnect=kTRUE)
const char * GetServerHostName() const
virtual ~TGo4ClientTask()
TGo4TaskHandler * GetTaskHandler() override
TGo4BufferQueue * fxCommandQ
void Quit() override
TGo4TaskHandler * fxTaskHandler
Bool_t fbServerConnected
Bool_t ConnectServer(const char *node, UInt_t negport, Go4CommandMode_t role=kGo4ComModeRefused, const char *passwd=nullptr)
TGo4BufferQueue * fxDataQ
void AddLocalCommand(TGo4Command *com)
TString fxServerHostname
TGo4BufferQueue * GetStatusQueue(const char *task=nullptr) override
TGo4TaskStatus * CreateStatus() override