00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "TGo4DynamicListException.h"
00017
00018 #include "snprintf.h"
00019
00020 #include "TGo4Log.h"
00021 #include "TGo4DynamicEntry.h"
00022
00023 TGo4DynamicListException & TGo4DynamicListException::operator= (const TGo4DynamicListException & right)
00024 {
00025 TRACE((14,"TGo4DynamicListException:operator=",__LINE__, __FILE__));
00026 if (&right!=this)
00027 {
00028 TGo4RuntimeException::operator=(right);
00029
00030 fxEntry=right.fxEntry;
00031 fxEntryName=right.fxEntryName;
00032 fxEntryClass=right.fxEntryClass;
00033 fxStatusMessage=right.fxStatusMessage;
00034 return *this;
00035 }
00036 else
00037 {
00038
00039 return *this;
00040 }
00041 }
00042
00043 TGo4DynamicListException::TGo4DynamicListException(const TGo4DynamicListException &right)
00044 :TGo4RuntimeException(right)
00045 {
00046 TRACE((14,"TGo4DynamicListException:TGo4DynamicListException(right)", __LINE__, __FILE__)); ;
00047 fxEntry=right.fxEntry;
00048 fxEntryName=right.fxEntryName;
00049 fxEntryClass=right.fxEntryClass;
00050 fxStatusMessage=right.fxStatusMessage;
00051
00052 }
00053
00054 Int_t TGo4DynamicListException::Handle()
00055 {
00056 TRACE((12,"TGo4AnalyisStepException::Handle()", __LINE__, __FILE__));
00057
00058
00059 TGo4Log::Debug("%s \n Entry %s:%s, %s\n \t--Entry was disabled.",
00060 What(),GetEntryClass(), GetEntryName(),GetStatusMessage());
00061 if(fxEntry)
00062 fxEntry->EnableProcessing(kFALSE);
00063 return 0;
00064 }
00065 TGo4DynamicListException::~TGo4DynamicListException()
00066 {
00067 TRACE((14,"TGo4DynamicListException:~TGo4DynamicListException", __LINE__, __FILE__));
00068
00069 }
00070 TGo4DynamicListException::TGo4DynamicListException (TGo4DynamicEntry* entry, const char* message,...)
00071 : fxEntry(0)
00072 {
00073 TRACE((14,"TGo4DynamicListException:TGo4DynamicListException (TGo4DynamicEntry*,..)", __LINE__, __FILE__));
00074 fxDescription= "!!!-- Go4 Dynamic List Exception --!!!";
00075 if(entry)
00076 {
00077 fxEntry=entry;
00078 fxEntryName=fxEntry->GetName();
00079 fxEntryClass=fxEntry->ClassName();
00080
00081 }
00082 UInt_t lbuflen=256;
00083 Text_t txtbuf[256];
00084 va_list args;
00085 va_start(args, message);
00086 vsnprintf(txtbuf, lbuflen, message, args);
00087 va_end(args);
00088 fxStatusMessage=txtbuf;
00089 }
00090
00091