GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
TGo4ComGetObjectStatus.cxx
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
15
16#include "TGo4Log.h"
17#include "TGo4ObjectStatus.h"
19#include "TGo4AnalysisImp.h"
20
22:TGo4AnalysisObjectCommand("ANObjectStatus","Get an object status from analysis",obname)
23{
24 GO4TRACE((12,"TGo4ComGetObjectStatus::TGo4ComGetObjectStatus(const char *) ctor",__LINE__, __FILE__));
25 SetReceiverName("AnalysisClient"); // this command needs client as receiver
26 // override default receiver
27}
28
30:TGo4AnalysisObjectCommand("ANObjectStatus","Get an object status from analysis","his")
31
32 {
33 GO4TRACE((12,"TGo4ComGetObjectStatus::TGo4ComGetObjectStatus() ctor",__LINE__, __FILE__));
34 SetReceiverName("AnalysisClient"); // this command needs client as receiver
35 // override default receiver
36}
37
39{
40 GO4TRACE((12,"TGo4ComGetObjectStatus::ExeCom()",__LINE__, __FILE__));
41
43 if (!cli) {
44 GO4TRACE((11,"TGo4ComGetObjectStatus::ExeCom() - no receiver specified ERROR!",__LINE__, __FILE__));
45 TGo4Log::Debug(" !!! %s : NO RECEIVER ERROR!!!",GetName());
46 return 1;
47 }
48
49 GO4TRACE((11,"TGo4ComGetObjectStatus::ExeCom() - found valid receiver",__LINE__, __FILE__));
50 TGo4Log::Debug(" Executing %s : Object %s Status requested ", GetName(), GetObjectName());
52 TGo4ObjectStatus *state = ana ? ana->CreateObjectStatus(GetObjectName(), GetFolderName()) : nullptr;
53 if(state) {
54 TString name = state->GetName(); // workaround for the case that
55 name.Append("_status"); // histogram is in monitoring list
56 state->SetName(name.Data());
57 cli->SendObject(state, GetTaskName());
58 delete state; // SendObject will stream state, but not delete it!
59 } else {
60 cli->SendStatusMessage(3, kTRUE,TString::Format(
61 "GetObjectStatus - ERROR: no such object %s in folder %s",
63 }
64
65 return -1;
66}
#define GO4TRACE(X)
Definition TGo4Log.h:25
void SendStatusMessage(Int_t level, Bool_t printout, const TString &text) override
Send message to gui.
const char * GetObjectName() const
access to the object name under command.
The mother of all go4 analysis.
static TGo4Analysis * Instance()
return analysis instance
TGo4ObjectStatus * CreateObjectStatus(const char *name, const char *folder=nullptr)
Find Object of name in the folder structure and create a complete status object of it.
Int_t ExeCom() override
Do the command action.
TGo4CommandReceiver * fxReceiverBase
void SetReceiverName(const char *)
const char * GetTaskName() const
static void Debug(const char *text,...) GO4_PRINTF_ARGS
User shortcut for message with prio 0.
Definition TGo4Log.cxx:281
One entry of the object names folder.
void SendObject(TObject *obj, const char *receiver=nullptr)
Send object via data channel to the server.