00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "TGo4AnalysisStepStatus.h"
00015
00016 #include "Riostream.h"
00017 #include "TROOT.h"
00018
00019 #include "TGo4Log.h"
00020
00021 TGo4AnalysisStepStatus::TGo4AnalysisStepStatus() :
00022 TGo4Status(),
00023 fxSourceType(0),
00024 fxStoreType(0),
00025 fxProcessorType(0),
00026 fbSourceEnabled(kFALSE),
00027 fbStoreEnabled(kFALSE),
00028 fbProcessEnabled(kFALSE),
00029 fbErrorStopEnabled(kFALSE),
00030 fbErrorStopped(kFALSE),
00031 fiProcessStatus(0)
00032 {
00033 }
00034
00035 TGo4AnalysisStepStatus::TGo4AnalysisStepStatus(const char* name) :
00036 TGo4Status(name, "Go4 AnalysisStep Status Object"),
00037 fxSourceType(0),
00038 fxStoreType(0),
00039 fxProcessorType(0),
00040 fbSourceEnabled(kFALSE),
00041 fbStoreEnabled(kFALSE),
00042 fbProcessEnabled(kFALSE),
00043 fbErrorStopEnabled(kFALSE),
00044 fbErrorStopped(kFALSE),
00045 fiProcessStatus(0)
00046 {
00047 GO4TRACE((15,"TGo4AnalysisStepStatus::TGo4AnalysisStepStatus(const char*)",__LINE__, __FILE__));
00048
00049 }
00050
00051 TGo4AnalysisStepStatus::~TGo4AnalysisStepStatus()
00052 {
00053 GO4TRACE((15,"TGo4AnalysisStepStatus::~TGo4AnalysisStepStatus()",__LINE__, __FILE__));
00054 delete fxSourceType;
00055 delete fxStoreType;
00056 delete fxProcessorType;
00057 }
00058
00059 Int_t TGo4AnalysisStepStatus::PrintStatus(Text_t* buffer, Int_t buflen)
00060 {
00061 GO4TRACE((12,"TGo4AnalysisStepStatus::PrintStatus()",__LINE__, __FILE__));
00062
00063
00064 Int_t locallen=64000;
00065 Text_t localbuf[64000];
00066 if(buflen<0 && buffer!=0)
00067 return 0;
00068 Int_t size=0;
00069
00070 Text_t* current=localbuf;
00071 Int_t restlen=locallen;
00072 current=PrintIndent(current,restlen);
00073 current=PrintBuffer(current,restlen, "++++ Analysis Step %s ++++\t \n",GetName());
00074 TROOT::IncreaseDirLevel();
00075 if(IsProcessEnabled())
00076 {
00077 if(IsSourceEnabled())
00078 {
00079 TGo4EventSourceParameter* spar=GetSourcePar();
00080 if( spar!=0 )
00081 {
00082 Int_t delta=spar->PrintParameter(current,restlen);
00083 restlen-=delta;
00084 current+=delta;
00085 }
00086 else
00087 {
00088 current=PrintIndent(current,restlen);
00089 current=PrintBuffer(current,restlen, "EventSource Type: undefined \n");
00090 }
00091 }
00092 else
00093 {
00094 current=PrintIndent(current,restlen);
00095 current=PrintBuffer(current,restlen, "EventSource is disabled. \n");
00096 }
00097
00098 TGo4EventProcessorParameter* ppar=GetProcessorPar();
00099 if(ppar !=0)
00100 {
00101 Int_t delta=ppar->PrintParameter(current,restlen);
00102 restlen-=delta;
00103 current+=delta;
00104 }
00105 else
00106 {
00107
00108
00109
00110 }
00111
00112
00113 if(IsStoreEnabled())
00114 {
00115 TGo4EventStoreParameter* tpar=GetStorePar();
00116 if(tpar!=0)
00117 {
00118 Int_t delta=tpar->PrintParameter(current,restlen);
00119 restlen-=delta;
00120 current+=delta;
00121 }
00122 else
00123 {
00124 current=PrintIndent(current,restlen);
00125 current=PrintBuffer(current,restlen, "EventStore Type: undefined \n");
00126 }
00127 }
00128 else
00129 {
00130 current=PrintIndent(current,restlen);
00131 current=PrintBuffer(current,restlen, "EventStore is disabled.\n");
00132 }
00133
00134
00135
00136
00137 current=PrintIndent(current,restlen);
00138 current=PrintBuffer(current,restlen, "Process Status: %d\n",GetProcessStatus());
00139 }
00140 else
00141 {
00142 current=PrintIndent(current,restlen);
00143 current=PrintBuffer(current,restlen, "Step is disabled.\n");
00144 }
00145 TROOT::DecreaseDirLevel();
00146 current=PrintIndent(current,restlen);
00147 current=PrintBuffer(current,restlen, "---------------------------------------------- \n");
00148 if(buffer==0)
00149 {
00150 std::cout << localbuf << std::endl;
00151 }
00152 else
00153 {
00154 size=locallen-restlen;
00155 if(size>buflen-1)
00156 size=buflen-1;
00157 strncpy(buffer,localbuf,size);
00158 }
00159 return size;
00160 }
00161
00162 void TGo4AnalysisStepStatus::SetSourcePar(TGo4EventSourceParameter* kind)
00163 {
00164 if(fxSourceType) delete fxSourceType;
00165 if(kind)
00166 fxSourceType=dynamic_cast<TGo4EventSourceParameter*>(kind->Clone());
00167 else
00168 fxSourceType=0;
00169 }
00170
00171 TGo4EventSourceParameter* TGo4AnalysisStepStatus::TakeSourcePar()
00172 {
00173 TGo4EventSourceParameter* res = fxSourceType;
00174 fxSourceType = 0;
00175 return res;
00176 }
00177
00178 void TGo4AnalysisStepStatus::SetStorePar(TGo4EventStoreParameter* kind)
00179 {
00180 if(fxStoreType) delete fxStoreType;
00181 if(kind)
00182 fxStoreType=dynamic_cast<TGo4EventStoreParameter*>(kind->Clone());
00183 else
00184 fxStoreType=0;
00185 }
00186
00187 void TGo4AnalysisStepStatus::SetProcessorPar(TGo4EventProcessorParameter* kind)
00188 {
00189 if(fxProcessorType) delete fxProcessorType;
00190 if(kind)
00191 fxProcessorType=dynamic_cast<TGo4EventProcessorParameter*>(kind->Clone());
00192 else
00193 fxProcessorType=0;
00194 }