16 #include "TApplication.h" 19 #include "TDataType.h" 22 #include "TGo4LockGuard.h" 61 TGo4Slave(name, servermode, host, negport),
62 fdBufferUpdateTime(0),
65 fbLoadPrefs(loadprefs),
68 GO4TRACE((15,
"TGo4AnalysisClient::TGo4AnalysisClient(const char*,...)",__LINE__, __FILE__));
90 TGo4Slave(argv[2], servermode, argv[3], (argc>4) ? atoi(argv[4]) : 5000),
97 GO4TRACE((15,
"TGo4AnalysisClient::TGo4AnalysisClient(int, char**...)",__LINE__, __FILE__));
100 TGo4Log::Error(
"!!! AnalysisClient: missing commandline arguments, aborting !!");
101 gApplication->Terminate();
103 if (!strcmp(
"-lGUI", argv[1])) {
104 TGo4Log::Error(
" !!! AnalysisClient: GUI mode not specified, aborting !!");
105 gApplication->Terminate();
157 GO4TRACE((15,
"TGo4AnalysisClient::~TGo4AnalysisClient()",__LINE__, __FILE__));
189 SendStatusMessage(1,kTRUE, TString::Format(
"AnalysisClient %s: Status loaded from %s",
192 SendStatusMessage(2,kTRUE, TString::Format(
"AnalysisClient %s: Could not load status from %s",
198 SendStatusMessage(1,kTRUE, TString::Format(
"AnalysisClient %s: AUTOSAVE is DISABLED, Initialization did NOT load analysis objects!",
206 SendStatusMessage(2,kTRUE, TString::Format(
"AnalysisClient %s: Initialization could not load analysis objects!",
GetName()));
209 SendStatusMessage(1,kTRUE, TString::Format(
"Analysis Slave %s waiting for submit and start commands...",
GetName()));
239 GO4TRACE((12,
"TGo4AnalysisClient::UpdateStatus(TGo4TaskStatus *)",__LINE__, __FILE__));
260 GO4TRACE((12,
"TGo4AnalysisClient::CreateStatus()",__LINE__, __FILE__));
269 GO4TRACE((12,
"TGo4AnalysisClient::Start()",__LINE__, __FILE__));
291 GO4TRACE((12,
"TGo4AnalysisClient::SendAnalysisObject(const char *name)",__LINE__, __FILE__));
298 GO4TRACE((12,
"TGo4AnalysisClient::SendAnalysisStatus()",__LINE__, __FILE__));
300 TGo4Log::Debug(
" AnalysisClient - sending current analysis settings ");
313 GO4TRACE((12,
"TGo4AnalysisClient::SendAnalysisClientStatus()",__LINE__, __FILE__));
315 TGo4Log::Debug(
" AnalysisClient - sending current analysis client status ");
326 GO4TRACE((12,
"TGo4AnalysisClient::SendNamesList()",__LINE__, __FILE__));
338 SendStatusMessage(3,kTRUE,
"Analysis Client: Send Names List - ERROR: no nameslist !!! ");
344 GO4TRACE((12,
"TGo4AnalysisClient::KillMain()",__LINE__, __FILE__));
354 GO4TRACE((12,
"TGo4AnalysisClient::RestartMain()",__LINE__, __FILE__));
363 SendStatusMessage(2,kTRUE,TString::Format(
"AnalysisClient %s has killed and relaunched main analysis thread.",
GetName()));
368 GO4TRACE((12,
"TGo4AnalysisClient::Stop()",__LINE__, __FILE__));
373 if(
GetTask()->IsTerminating())
return;
394 GO4TRACE((12,
"TGo4AnalysisClient::UpdateRate(Int_t)",__LINE__, __FILE__));
423 Double_t currenttime = TTimeStamp().AsDouble();
429 fdBufferUpdateTime = currenttime;
466 GetTask()->TGo4ThreadManager::Terminate(termapp);
472 TGo4Log::Debug(
"TGo4AnalysisClient::TerminateFast with delete analysis");
482 gApplication->Terminate();
496 if(strstr(command,
"ANHServStart")) {
497 TString buffer = command;
498 strtok((
char *) buffer.Data(),
":");
499 TString base = strtok(
nullptr,
":");
500 TString pass = strtok(
nullptr,
":");
502 }
else if (!strcmp(command,
"ANHServStop")) {
535 gROOT->SetBatch(kFALSE);
Bool_t IsAutoSaveOn() const
const char * GetName() const
void SendObject(TObject *obj, const char *receiver=nullptr)
TGo4HistogramServer * fxHistoServer
TGo4AnalysisSniffer * GetSniffer() const
TGo4ThreadHandler * GetThreadHandler()
virtual void StatusMessage(int level, Bool_t printout, const TString &)
Bool_t SubmitLocalCommand(TGo4Command *com)
const char * GetName() const override
void SetDateTime(const char *str)
void WakeCommandQueue(Int_t id=0)
virtual void UpdateStatus(TGo4TaskStatus *state)
static void SetCommandList(TGo4CommandProtoList *list)
static void UnRegister(TGo4CommandReceiver *p)
virtual void CloseAnalysis()
static void SetObservAccount(const char *name, const char *passwd)
void SetCurrentSource(const char *str)
TGo4Task * GetTask() const
TGo4AnalysisObjectNames * GetNamesList() const
void Constructor(Bool_t starthistserv=kFALSE, const char *basename="Go4", const char *passwd="abcd")
void SetCintMode(Bool_t on=kTRUE)
static const char * fgcDEFAULTSTATUSFILENAME
void SendAnalysisStatus()
void SetRates(Double_t rate, Double_t average, ULong64_t counts, Double_t time)
static void SetCtrlAccount(const char *name, const char *passwd)
Bool_t ReCreate(const char *thname)
static void Register(const char *name, TGo4CommandReceiver *p)
virtual void RatemeterUpdate(TGo4Ratemeter *)
void ExecuteString(const char *command) override
void Terminate(Bool_t termapp=kTRUE) override
Bool_t IsInitDone() const
void SendStatusMessage(Int_t level, Bool_t printout, const TString &text) override
Bool_t NewThread(const char *name, TGo4Runnable *runnable)
void SetRunning(Bool_t on=kTRUE)
void UpdateStatus(TGo4TaskStatus *state) override
void TerminateFast() override
virtual Int_t StopWorkThreads()
TGo4AnalysisStep * GetAnalysisStep(const char *name)
TGo4Analysis * fxAnalysis
Bool_t LoadObjects(const char *filename=nullptr)
static void Debug(const char *text,...) GO4_PRINTF_ARGS
static const Double_t fgdSTATUSTIMEOUT
void SetRunning(Bool_t on)
void SendAnalysisClientStatus()
static const char * fgcMAINTHREAD
void SendAnalysisObject(const char *name)
void SetAutoSave(Bool_t on=kTRUE)
Long64_t ExecuteLine(const char *command, Int_t *errcode=nullptr)
TString fServerObserverPass
static TGo4CommandInvoker * Instance()
void SetCurrentSource(const char *name)
void RestartMain() override
static const char * fgcWATCHTHREAD
Bool_t Stop(const char *thname)
TGo4Analysis * GetAnalysis() const
const char * GetEventSourceName() const
void SendStatus(TGo4Status *stat, const char *receiver=nullptr)
Bool_t Start(const char *thname)
Bool_t Cancel(const char *thname)
virtual void SendStatusMessage(Int_t level, Bool_t printout, const TString &text)
Bool_t IsCintMode() const
TNamed * GetObject(const char *name, const char *folder=nullptr)
static void Error(const char *text,...) GO4_PRINTF_ARGS
Bool_t Update(Int_t increment=1)
virtual Bool_t InitEventClasses()
Int_t StopWorkThreads() override
static void PrintRate(ULong64_t cnt, double rate)
UInt_t GetCurrentCount() const
void SetAnalysisClient(TGo4AnalysisClient *cli)
Bool_t MainIsRunning() const
TGo4TaskStatus * CreateStatus() override
Int_t StartWorkThreads() override
TGo4Ratemeter * fxRatemeter
ULong64_t GetCurrentCount() const
void UpdateStatusBuffer()
static void SetAdminAccount(const char *name, const char *passwd)
static const UInt_t fguCINTTIMERPERIOD
Bool_t TestBufferUpdateConditions()
TGo4AnalysisStatus * CreateStatus()
void UpdateRate(Int_t counts=1)
Int_t Initialization() override
Bool_t LoadStatus(const char *filename=nullptr)
Double_t GetAvRate() const
static const UInt_t fguSTATUSUPDATE
Double_t fdBufferUpdateTime
static TGo4Analysis * Instance()
virtual ~TGo4AnalysisClient()
virtual Int_t StartWorkThreads()
void StartObjectServer(const char *basename, const char *passwd)