Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "TGo4EventSource.h"
00015
00016 #include "TClass.h"
00017 #include "snprintf.h"
00018
00019 #include "TGo4EventElement.h"
00020 #include "TGo4EventErrorException.h"
00021 #include "TGo4EventEndException.h"
00022 #include "TGo4Log.h"
00023
00024 const Int_t TGo4EventSource::fgiTIMEOUTDEFAULT=1;
00025
00026 TGo4EventSource::TGo4EventSource(const char* name) :
00027 TNamed(name, "This is a Go4 Event Source"),
00028 fiCreateStatus(0),
00029 fiEventStatus(0)
00030 {
00031 GO4TRACE((15,"TGo4EventSource::TGo4EventSource()",__LINE__, __FILE__));
00032 }
00033
00034 TGo4EventSource::TGo4EventSource() :
00035 TNamed("default eventsource","This is a Go4 EventSource"),
00036 fiCreateStatus(0),
00037 fiEventStatus(0)
00038 {
00039 }
00040
00041 TGo4EventSource::~TGo4EventSource()
00042 {
00043 GO4TRACE((15,"TGo4EventSource::~TGo4EventSource()",__LINE__, __FILE__));
00044 }
00045
00046 void TGo4EventSource::ThrowError(Int_t crestat, Int_t errstat, const char* message,...)
00047 {
00048
00049 UInt_t lbuflen = TGo4EventSource::fguTXTLEN;
00050 char* txtbuf = new char[lbuflen];
00051 va_list args;
00052 va_start(args, message);
00053 vsnprintf(txtbuf, lbuflen, message, args);
00054 va_end(args);
00055 if(crestat!=0)
00056 SetCreateStatus(crestat);
00057 if(errstat!=0)
00058 SetEventStatus(errstat);
00059 SetErrMess(txtbuf);
00060 delete[] txtbuf;
00061 throw TGo4EventErrorException(this);
00062 }
00063
00064 void TGo4EventSource::ThrowEOF(Int_t crestat, Int_t errstat, const char* message,...)
00065 {
00066
00067 UInt_t lbuflen = TGo4EventSource::fguTXTLEN;
00068 char* txtbuf = new char[lbuflen];
00069 va_list args;
00070 va_start(args, message);
00071 vsnprintf(txtbuf, lbuflen, message, args);
00072 va_end(args);
00073 if(crestat!=0)
00074 SetCreateStatus(crestat);
00075 if(errstat!=0)
00076 SetEventStatus(errstat);
00077 SetErrMess(txtbuf);
00078 delete[] txtbuf;
00079 throw TGo4EventEndException(this);
00080 }
00081
00082 void TGo4EventSource::Clear(Option_t*)
00083 {
00084
00085 TGo4Log::Info("Default clear of eventsource %s", GetName());
00086 }
00087
00088
00089 const char* TGo4EventSource::GetActiveName()
00090 {
00091 return GetName();
00092 }
00093
00094 Bool_t TGo4EventSource::CheckEventClass(TClass* cl)
00095 {
00096 return cl->InheritsFrom(TGo4EventElement::Class());
00097 }