Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TGO4ANALYSISCLIENTIMP_H
00015 #define TGO4ANALYSISCLIENTIMP_H
00016
00017 #include "TGo4Slave.h"
00018
00019 #include "TString.h"
00020
00021 class TTimer;
00022 class TGo4Analysis;
00023 class TGo4ClientStatus;
00024 class TGo4Ratemeter;
00025 class TGo4HistogramServer;
00026 class TGo4TaskStatus;
00027 class TGo4InterruptHandler;
00028
00034 class TGo4AnalysisClient : public TGo4Slave {
00035
00036 public:
00037 TGo4AnalysisClient(const char* name,
00038 TGo4Analysis* analysis,
00039 const char* host="localhost",
00040 UInt_t negport=0,
00041 Bool_t histoserver=kFALSE,
00042 const char* basename="Go4",
00043 const char* passwd="abcd",
00044 Bool_t servermode=kFALSE,
00045 Bool_t autorun=kFALSE,
00046 Bool_t cintmode = kFALSE,
00047 Bool_t loadprefs = kTRUE,
00048 Bool_t showrate = kFALSE);
00049
00050 TGo4AnalysisClient(int argc, char** argv,
00051 TGo4Analysis* analysis,
00052 Bool_t histoserver=kFALSE,
00053 const char* basename="Go4",
00054 const char* passwd="abcd",
00055 Bool_t servermode=kFALSE,
00056 Bool_t autorun=kFALSE);
00057
00058 virtual ~TGo4AnalysisClient();
00059
00060 TGo4Analysis* GetAnalysis() const { return fxAnalysis; }
00061
00062 virtual void Start();
00063
00064 virtual void Stop();
00065
00066 virtual void Quit();
00067
00070 virtual void KillMain();
00071
00074 virtual void RestartMain();
00075
00080 virtual TGo4TaskStatus* CreateStatus();
00081
00084 virtual Int_t Initialization();
00085
00089 void SendAnalysisObject(const char* name);
00090
00093 void SendAnalysisStatus();
00094
00097 void SendAnalysisClientStatus();
00098
00100 void SendNamesList();
00101
00103 void UpdateRate(Int_t counts=1);
00104
00106 UInt_t GetCurrentCount();
00107
00109 Bool_t TestRatemeter();
00110
00112 Bool_t TestBufferUpdateConditions();
00113
00116 void StartObjectServer(const char* basename, const char* passwd);
00117
00119 void StopObjectServer();
00120
00121
00125 virtual Int_t StartWorkThreads();
00126
00130 virtual Int_t StopWorkThreads();
00131
00133 virtual void Terminate (Bool_t termapp=kTRUE);
00134
00136 virtual void TerminateFast ();
00137
00138
00139
00140 void SubmitShutdown();
00141
00143 virtual void SendStatusMessage(Int_t level, Bool_t printout, const TString& text);
00144
00147 virtual void ExecuteString(const char* command);
00148
00149 void SetCintMode(Bool_t on=kTRUE);
00150
00151 Bool_t IsCintMode() const { return fbCintMode; }
00152
00155 void LockAll();
00156
00159 void UnLockAll();
00160
00162 static const char* fgcMAINTHREAD;
00163
00165 static const char* fgcWATCHTHREAD;
00166
00168 static const UInt_t fguSTATUSUPDATE;
00169
00171 static const Double_t fgdSTATUSTIMEOUT;
00172
00174 static const UInt_t fguCINTTIMERPERIOD;
00175
00176 private:
00177
00178 void Constructor(Bool_t starthistserv=kFALSE, const char* basename="Go4", const char* passwd="abcd");
00179
00182 void UpdateStatus(TGo4TaskStatus * state);
00183
00184
00185
00186 private:
00187
00192 TGo4Analysis* fxAnalysis;
00193
00195 TString fcMainName;
00196
00198 TString fcWatchName;
00199
00201 Double_t fdBufferUpdateTime;
00202
00205 TGo4Ratemeter* fxRatemeter;
00206
00210 TGo4HistogramServer* fxHistoServer;
00211
00214 Bool_t fbAutoStart;
00215
00218 Bool_t fbCintMode;
00219
00223 TTimer* fxCintLockTimer;
00224
00226 Bool_t fbLoadPrefs;
00227
00229 Bool_t fbShowRate;
00230
00231 TGo4AnalysisClient();
00232
00233 ClassDef(TGo4AnalysisClient,1)
00234
00235 };
00236
00237 #endif //TGO4ANALYSISCLIENT_H