16 #include "TApplication.h"
19 #include "TDataType.h"
22 #include "TGo4LockGuard.h"
61 TGo4Slave(name, servermode, host, negport),
62 fdBufferUpdateTime(0),
66 fbLoadPrefs(loadprefs),
69 GO4TRACE((15,
"TGo4AnalysisClient::TGo4AnalysisClient(const char*,...)",__LINE__, __FILE__));
91 TGo4Slave(argv[2], servermode, argv[3] , (argc>4) ? atoi(argv[4]) : 5000),
92 fdBufferUpdateTime(0),
99 GO4TRACE((15,
"TGo4AnalysisClient::TGo4AnalysisClient(int, char**...)",__LINE__, __FILE__));
103 TGo4Log::Error(
"!!! AnalysisClient: missing commandline arguments, aborting !!");
104 gApplication->Terminate();
106 if(!strcmp(
"-lGUI",argv[1]))
108 TGo4Log::Error(
" !!! AnalysisClient: GUI mode not specified, aborting !!");
109 gApplication->Terminate();
164 GO4TRACE((15,
"TGo4AnalysisClient::~TGo4AnalysisClient()",__LINE__, __FILE__));
194 SendStatusMessage(1,kTRUE, TString::Format(
"AnalysisClient %s: Status loaded from %s",
197 SendStatusMessage(2,kTRUE, TString::Format(
"AnalysisClient %s: Could not load status from %s",
203 SendStatusMessage(1,kTRUE, TString::Format(
"AnalysisClient %s: AUTOSAVE is DISABLED, Initialization did NOT load analysis objects!",
211 SendStatusMessage(2,kTRUE, TString::Format(
"AnalysisClient %s: Initialization could not load analysis objects!",
GetName()));
214 SendStatusMessage(1,kTRUE, TString::Format(
"Analysis Slave %s waiting for submit and start commands...",
GetName()));
245 GO4TRACE((12,
"TGo4AnalysisClient::UpdateStatus(TGo4TaskStatus*)",__LINE__, __FILE__));
267 GO4TRACE((12,
"TGo4AnalysisClient::CreateStatus()",__LINE__, __FILE__));
276 GO4TRACE((12,
"TGo4AnalysisClient::Start()",__LINE__, __FILE__));
298 GO4TRACE((12,
"TGo4AnalysisClient::SendAnalysisObject(char* name)",__LINE__, __FILE__));
305 GO4TRACE((12,
"TGo4AnalysisClient::SendAnalysisStatus()",__LINE__, __FILE__));
307 TGo4Log::Debug(
" AnalysisClient - sending current analysis settings ");
320 GO4TRACE((12,
"TGo4AnalysisClient::SendAnalysisClientStatus()",__LINE__, __FILE__));
322 TGo4Log::Debug(
" AnalysisClient - sending current analysis client status ");
333 GO4TRACE((12,
"TGo4AnalysisClient::SendNamesList()",__LINE__, __FILE__));
345 SendStatusMessage(3,kTRUE,
"Analysis Client: Send Names List - ERROR: no nameslist !!! ");
351 GO4TRACE((12,
"TGo4AnalysisClient::KillMain()",__LINE__, __FILE__));
361 GO4TRACE((12,
"TGo4AnalysisClient::RestartMain()",__LINE__, __FILE__));
370 SendStatusMessage(2,kTRUE,TString::Format(
"AnalysisClient %s has killed and relaunched main analysis thread.",
GetName()));
375 GO4TRACE((12,
"TGo4AnalysisClient::Stop()",__LINE__, __FILE__));
380 if(
GetTask()->IsTerminating())
return;
405 GO4TRACE((12,
"TGo4AnalysisClient::UpdateRate(Int_t)",__LINE__, __FILE__));
441 Double_t currenttime = TTimeStamp().AsDouble();
447 fdBufferUpdateTime = currenttime;
490 GetTask()->TGo4ThreadManager::Terminate(termapp);
496 TGo4Log::Debug(
"TGo4AnalysisClient::TerminateFast with delete analysis");
506 gApplication->Terminate();
523 if(strstr(command,
"ANHServStart")) {
524 TString buffer = command;
525 strtok((
char*) buffer.Data(),
":");
526 TString base = strtok(0,
":");
527 TString pass = strtok(0,
":");
531 if (!strcmp(command,
"ANHServStop")) {
568 gROOT->SetBatch(kFALSE);
virtual void TerminateFast()
Bool_t IsInitDone() const
TGo4HistogramServer * fxHistoServer
TGo4ThreadHandler * GetThreadHandler()
virtual void StatusMessage(int level, Bool_t printout, const TString &)
Bool_t SubmitLocalCommand(TGo4Command *com)
Bool_t LoadStatus(const char *filename=0)
void SetDateTime(const char *str)
virtual void SendStatusMessage(Int_t level, Bool_t printout, const TString &text)
Bool_t IsAutoSaveOn() const
void WakeCommandQueue(Int_t id=0)
virtual void UpdateStatus(TGo4TaskStatus *state)
static void SetCommandList(TGo4CommandProtoList *list)
static void UnRegister(TGo4CommandReceiver *p)
virtual void CloseAnalysis()
TGo4AnalysisSniffer * GetSniffer() const
static void SetObservAccount(const char *name, const char *passwd)
void SetCurrentSource(const char *str)
Bool_t LoadObjects(const char *filename=0)
virtual Int_t Initialization()
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()
Double_t GetAvRate() const
static const char * GetPrintfArg(Int_t type_id)
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 *)
Bool_t NewThread(const char *name, TGo4Runnable *runnable)
void SetRunning(Bool_t on=kTRUE)
virtual Int_t StartWorkThreads()
virtual Int_t StopWorkThreads()
virtual void Terminate(Bool_t termapp=kTRUE)
TGo4AnalysisStep * GetAnalysisStep(const char *name)
TGo4Analysis * fxAnalysis
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)
TString fServerObserverPass
static TGo4CommandInvoker * Instance()
void SetCurrentSource(const char *name)
TGo4Analysis * GetAnalysis() const
void SendObject(TObject *obj, const char *receiver=0)
static const char * fgcWATCHTHREAD
virtual void RestartMain()
Bool_t Stop(const char *thname)
virtual TGo4TaskStatus * CreateStatus()
const char * GetName() const
Bool_t Start(const char *thname)
virtual Int_t StopWorkThreads()
Bool_t Cancel(const char *thname)
virtual const char * GetName() const
virtual void SendStatusMessage(Int_t level, Bool_t printout, const TString &text)
Bool_t IsCintMode() const
Bool_t Update(Int_t increment=1)
virtual Bool_t InitEventClasses()
void SetAnalysisClient(TGo4AnalysisClient *cli)
Long_t ExecuteLine(const char *command, Int_t *errcode=0)
TGo4AnalysisObjectNames * GetNamesList() const
void SendStatus(TGo4Status *stat, const char *receiver=0)
ULong64_t GetCurrentCount() const
TGo4Ratemeter * fxRatemeter
void UpdateStatusBuffer()
static void SetAdminAccount(const char *name, const char *passwd)
static const UInt_t fguCINTTIMERPERIOD
Bool_t TestBufferUpdateConditions()
TNamed * GetObject(const char *name, const char *folder=0)
TGo4AnalysisStatus * CreateStatus()
void UpdateRate(Int_t counts=1)
void UpdateStatus(TGo4TaskStatus *state)
virtual void ExecuteString(const char *command)
static const UInt_t fguSTATUSUPDATE
Double_t fdBufferUpdateTime
static TGo4Analysis * Instance()
const char * GetEventSourceName()
static void Error(const char *text,...)
virtual ~TGo4AnalysisClient()
virtual Int_t StartWorkThreads()
static void Debug(const char *text,...)
void StartObjectServer(const char *basename, const char *passwd)