40 fiRetryCnt(par->GetRetryCnt()),
41 fxEvent(0), fxBuffer(0), fxInfoHeader(0),
42 fbIsOpen(kFALSE), fbDataCopyMode(kFALSE),
43 fuEventCounter(0), fbFirstEvent(kTRUE),
44 fuStartEvent(par->GetStartEvent()) ,
45 fuStopEvent(par->GetStopEvent()),
46 fuEventInterval(par->GetEventInterval()),
47 fiTimeout(par->GetTimeout()),
48 fbPollingMode(kFALSE),
49 fiPort(par->GetPort())
52 GO4TRACE((15,
"TGo4MbsSource::TGo4MbsSource(const char*, Int_t)",__LINE__, __FILE__));
62 fxEvent(0), fxBuffer(0), fxInfoHeader(0),
63 fbIsOpen(kFALSE), fbDataCopyMode(kFALSE),
64 fuEventCounter(0), fbFirstEvent(kTRUE),
65 fuStartEvent(0) ,fuStopEvent(0), fuEventInterval(0),
66 fiTimeout(-1), fbPollingMode(kFALSE), fiPort(0)
69 GO4TRACE((15,
"TGo4MbsSource::TGo4MbsSource(const char*, Int_t)",__LINE__, __FILE__));
82 fxEvent(0), fxBuffer(0), fxInfoHeader(0),
83 fbIsOpen(kFALSE), fbDataCopyMode(kFALSE),
84 fuEventCounter(0), fbFirstEvent(kTRUE),
85 fuStartEvent(0) ,fuStopEvent(0), fuEventInterval(0),
86 fiTimeout(-1), fbPollingMode(kFALSE), fiPort(0)
89 GO4TRACE((15,
"TGo4MbsSource::TGo4MbsSource()",__LINE__, __FILE__));
94 GO4TRACE((15,
"TGo4MbsSource::~TGo4MbsSource()",__LINE__, __FILE__));
115 return cl->InheritsFrom(TGo4MbsEvent::Class());
133 GO4TRACE((12,
"TGo4MbsSource::BuildMbsEvent(TGo4MbsEvent*)",__LINE__, __FILE__));
144 std::cout << std::endl;
148 Char_t* endofevent = (Char_t*) (
fxEvent) +
162 Char_t* subevtpointer;
166 Int_t totalsubdatalength=0;
172 Int_t datalength = 0;
174 while((datalength = subevent->
l_dlen) >0 ) {
175 totalsubdatalength+=datalength-2+
sizeof(
s_ves10_1)/
sizeof(Short_t);
182 Int_t * subeventid= (Int_t *) (subevent) + 2;
184 Short_t* data = (Short_t*) (subevent+1);
188 subevtpointer = (Char_t*) (subevent) +
191 if ((Char_t*) subevent >= endofevent) {
204 SetErrMess(
"!!! BuildMbsEvent: -- NO SUBEVENTS!!!");
220 Short_t* data = (Short_t*) (eventfourone+1);
221 Int_t datalength=eventfourone->
l_dlen+2;
229 SetErrMess(
"!!! BuildMbsEvent: -- NO Data in event 4,1!!!");
263 GO4TRACE((12,
"TGo4MbsSource::NextEvent()",__LINE__, __FILE__));
289 while (eventstep > 0) {
308 SetErrMess(Form(
"%s name:%s", buffer, GetName()));
329 gSystem->Sleep(1000);
336 printf(
"Retry %d successful\n", cnt);
342 printf(
"Retry %d failed\n", cnt);
358 GO4TRACE((12,
"TGo4MbsSource::Open()",__LINE__, __FILE__));
365 strncpy(name, GetName(),
sizeof(name) - 1);
368 char* separ = strrchr(name,
':');
370 if ((sscanf(separ+1,
"%d",&nport)==1) && (nport>0)) {
382 SetErrMess(Form(
"%s name:%s port:%d", buffer, name, nport));
400 SetErrMess(Form(
"%s name:%s", buffer, GetName()));
404 TGo4Log::Debug(
" Mbs Source -- opened input from type %d: %s . Timeout=%d s",
417 GO4TRACE((12,
"TGo4MbsSource::Close()",__LINE__, __FILE__));
void SetCount(Int_t count)
TGo4MbsSubEvent * AddSubEvent(Int_t fullID, Short_t *source, Int_t datalength, Bool_t copydata=kFALSE)
INTS4 f_evt_type(s_bufhe *ps_bufhe, s_evhe *ps_evhe, INTS4 l_subid, INTS4 l_long, INTS4 l_hex, INTS4 l_data)
s_evt_channel * fxInputChannel
INTS4 f_evt_get_close(s_evt_channel *ps_chan)
static Bool_t gbPollingMode
INTS4 f_evt_get_open(INTS4 l_mode, CHARS *pc_server, s_evt_channel *ps_chan, CHARS **ps_info, INTS4 l_sample, INTS4 l_param)
INTS4 f_evt_timeout(s_evt_channel *ps_chan, INTS4 l_sec)
void SetCreateStatus(Int_t status)
const char * GetErrMess() const
s_evt_channel * f_evt_control()
static void Warn(const char *text,...)
virtual Bool_t CheckEventClass(TClass *cl)
INTS4 f_evt_source_port(INTS4 l_port)
INTS4 f_evt_error(INTS4 l_error, CHARS *pc_dest, INTS4 l_out)
CHARS * f_evt_get_buffer_ptr(s_evt_channel *ps_chan)
virtual Int_t NextEvent()
void BuildMbsEvent(TGo4MbsEvent *target)
void SetErrMess(const char *txt)
Int_t GetMode() const
number of allowed reconnect retries
void SetTimeout(Int_t time)
void SetSubtype(Short_t subtype)
Int_t GetCreateStatus() const
void SetDummy(Short_t dummy)
static void SetPollingMode(Bool_t on=kTRUE)
static const UInt_t fguLONGBYCHAR
void SetType(Short_t type)
static const UInt_t fguSHORTBYCHAR
static const UInt_t fguEVHEBYCHAR
static const Int_t fgiTIMEOUTDEFAULT
void SetType(Short_t type)
Int_t GetEventStatus() const
void SetEventStatus(Int_t status)
void HandleAnlysisEvents()
void SetPrintEvent(Int_t num=1, Int_t sid=-1, Int_t longw=1, Int_t hexw=1, Int_t dataw=0)
virtual Bool_t BuildEvent(TGo4EventElement *dest)
virtual s_bufhe * GetBufferHeader()
static TGo4Analysis * Instance()
INTS4 f_evt_get_event(s_evt_channel *ps_chan, INTS4 **ppl_buffer, INTS4 **ppl_goobuf)
TGo4MbsSubEvent * BuildMbsSubEvent(TGo4MbsEvent *target, Int_t fullID, Short_t *source, Int_t datalength)
void SetSubtype(Short_t subtype)
static void Error(const char *text,...)
TGo4MbsSourcePrintPar fxPrEventPar
static void Info(const char *text,...)
static const UInt_t fguLONGBYSHORT
void SetTrigger(Short_t trigger)
static void Debug(const char *text,...)
Int_t fiPort
if true, use short timeout to keep gSystem->ProcessEvents() running