#include <TGo4MbsSource.h>
Public Member Functions | |
TGo4MbsSource () | |
TGo4MbsSource (const char *name, Int_t mode) | |
TGo4MbsSource (TGo4MbsSourceParameter *par, Int_t mode) | |
virtual | ~TGo4MbsSource () |
virtual Bool_t | CheckEventClass (TClass *cl) |
virtual Bool_t | BuildEvent (TGo4EventElement *dest) |
virtual Int_t | Close () |
virtual Int_t | Open () |
virtual Int_t | NextEvent () |
void | BuildMbsEvent (TGo4MbsEvent *target) |
TGo4MbsSubEvent * | BuildMbsSubEvent (TGo4MbsEvent *target, Int_t fullID, Short_t *source, Int_t datalength) |
void | SetStartEvent (UInt_t firstindex) |
void | SetStopEvent (UInt_t lastindex) |
void | SetEventInterval (UInt_t skipinterval) |
void | SetTimeout (Int_t time) |
void | SetPort (Int_t port) |
s_filhe * | GetInfoHeader () |
virtual s_bufhe * | GetBufferHeader () |
void | SetPrintEvent (Int_t num=1, Int_t sid=-1, Int_t longw=1, Int_t hexw=1, Int_t dataw=0) |
void | SetDataCopyMode (Bool_t on) |
Static Public Attributes | |
static const UInt_t | fguLONGBYCHAR = sizeof(Int_t) / sizeof(Char_t) |
static const UInt_t | fguSHORTBYCHAR = sizeof(Short_t) / sizeof(Char_t) |
static const UInt_t | fguLONGBYSHORT = sizeof(Int_t) / sizeof(Short_t) |
static const UInt_t | fguEVHEBYCHAR = sizeof(s_evhe) / sizeof(Char_t) |
Protected Attributes | |
s_evt_channel * | fxInputChannel |
s_ve10_1 * | fxEvent |
s_bufhe * | fxBuffer |
s_filhe * | fxInfoHeader |
Bool_t | fbIsOpen |
Bool_t | fbDataCopyMode |
ULong_t | fuEventCounter |
Bool_t | fbFirstEvent |
ULong_t | fuStartEvent |
ULong_t | fuStopEvent |
ULong_t | fuEventInterval |
Int_t | fiTimeout |
Int_t | fiPort |
TGo4MbsSourcePrintPar | fxPrEventPar |
Private Member Functions | |
Int_t | GetMode () const |
number of allowed reconnect retries | |
Private Attributes | |
Int_t | fiMode |
Int_t | fiRetryCnt |
Definition at line 61 of file TGo4MbsSource.h.
TGo4MbsSource::TGo4MbsSource | ( | ) |
default for streamer
Definition at line 76 of file TGo4MbsSource.cxx.
References f_evt_control(), fxInputChannel, and GO4TRACE.
TGo4MbsSource::TGo4MbsSource | ( | const char * | name, | |
Int_t | mode | |||
) |
Definition at line 56 of file TGo4MbsSource.cxx.
References f_evt_control(), TGo4EventSource::fgiTIMEOUTDEFAULT, fxInputChannel, GO4TRACE, and SetTimeout().
TGo4MbsSource::TGo4MbsSource | ( | TGo4MbsSourceParameter * | par, | |
Int_t | mode | |||
) |
Definition at line 36 of file TGo4MbsSource.cxx.
References f_evt_control(), fxInputChannel, and GO4TRACE.
TGo4MbsSource::~TGo4MbsSource | ( | ) | [virtual] |
Definition at line 90 of file TGo4MbsSource.cxx.
References Close(), fxInputChannel, and GO4TRACE.
Bool_t TGo4MbsSource::BuildEvent | ( | TGo4EventElement * | dest | ) | [virtual] |
Fill the destination event
dest |
Reimplemented from TGo4EventSource.
Definition at line 111 of file TGo4MbsSource.cxx.
References BuildMbsEvent(), TGo4Log::Debug(), TGo4EventSource::GetErrMess(), GETEVT__SUCCESS, and NextEvent().
void TGo4MbsSource::BuildMbsEvent | ( | TGo4MbsEvent * | target | ) |
This methods actually fills the target event class which is passed as pointer. Uses the latest event which is referenced by fxEvent or fxBuffer. Does _not_ fetch a new event from source, therefore one source event may be used to fill several TGo4MbsEvent classes. To get a new event call NextEvent() before this method.
Definition at line 124 of file TGo4MbsSource.cxx.
References TGo4MbsEvent::AddSubEvent(), TGo4Log::Debug(), f_evt_type(), fbDataCopyMode, fguEVHEBYCHAR, fguSHORTBYCHAR, TGo4MbsSourcePrintPar::fiData, TGo4MbsSourcePrintPar::fiHex, TGo4MbsSourcePrintPar::fiLong, TGo4MbsSourcePrintPar::fiNum, TGo4MbsSourcePrintPar::fiSid, fxBuffer, fxEvent, fxPrEventPar, TGo4EventSource::GetErrMess(), TGo4EventSource::GetEventStatus(), GETEVT__SUCCESS, GO4TRACE, s_ve10_1::i_dummy, s_ves10_1::i_subtype, s_ve10_1::i_subtype, s_ve10_1::i_trigger, s_ves10_1::i_type, s_ve10_1::i_type, s_ve10_1::l_count, s_evhe::l_dlen, s_ves10_1::l_dlen, s_ve10_1::l_dlen, TGo4MbsEvent::SetCount(), TGo4MbsEvent::SetDlen(), TGo4MbsEvent::SetDummy(), TGo4EventSource::SetErrMess(), TGo4MbsSubEvent::SetSubtype(), TGo4MbsEvent::SetSubtype(), TGo4MbsEvent::SetTrigger(), TGo4MbsSubEvent::SetType(), TGo4MbsEvent::SetType(), and TGo4EventElement::SetValid().
Referenced by BuildEvent().
TGo4MbsSubEvent * TGo4MbsSource::BuildMbsSubEvent | ( | TGo4MbsEvent * | target, | |
Int_t | fullID, | |||
Short_t * | source, | |||
Int_t | datalength | |||
) |
Auxiliary function to fill datalength words (Short_t) from source into the next subevent of target with matching header fullID longword. Returns handle to this subevent.
Definition at line 238 of file TGo4MbsSource.cxx.
References TGo4MbsEvent::AddSubEvent(), and fbDataCopyMode.
Bool_t TGo4MbsSource::CheckEventClass | ( | TClass * | cl | ) | [virtual] |
Check that filled event is a proper class
Reimplemented from TGo4EventSource.
Definition at line 106 of file TGo4MbsSource.cxx.
Int_t TGo4MbsSource::Close | ( | ) | [virtual] |
Close the file or connection.
Reimplemented in TGo4MbsFile, and TGo4MbsRandom.
Definition at line 393 of file TGo4MbsSource.cxx.
References f_evt_get_close(), fbIsOpen, fxInputChannel, TGo4EventSource::GetCreateStatus(), GETEVT__SUCCESS, and GO4TRACE.
Referenced by NextEvent(), TGo4MbsEventServer::~TGo4MbsEventServer(), ~TGo4MbsSource(), TGo4MbsStream::~TGo4MbsStream(), TGo4MbsTransport::~TGo4MbsTransport(), and TGo4RevServ::~TGo4RevServ().
s_bufhe * TGo4MbsSource::GetBufferHeader | ( | ) | [virtual] |
User access to current event buffer header.
Reimplemented in TGo4MbsRandom.
Definition at line 408 of file TGo4MbsSource.cxx.
References f_evt_get_buffer_ptr(), and fxInputChannel.
Referenced by TGo4MbsEvent::GetMbsBufferHeader().
s_filhe* TGo4MbsSource::GetInfoHeader | ( | ) | [inline] |
User access to info header. May contain additional run information
Definition at line 112 of file TGo4MbsSource.h.
References fxInfoHeader.
Referenced by TGo4MbsEvent::GetMbsSourceHeader().
Int_t TGo4MbsSource::GetMode | ( | ) | const [inline, private] |
number of allowed reconnect retries
Definition at line 144 of file TGo4MbsSource.h.
References fiMode.
Referenced by Open().
Int_t TGo4MbsSource::NextEvent | ( | ) | [virtual] |
Requests the next event from mbs source. Returns event status value.
Reimplemented in TGo4MbsFile, and TGo4MbsRandom.
Definition at line 245 of file TGo4MbsSource.cxx.
References Close(), TGo4Log::Error(), f_evt_error(), f_evt_get_event(), fbFirstEvent, fbIsOpen, fiMode, fiRetryCnt, fuEventCounter, fuEventInterval, fuStartEvent, fuStopEvent, fxBuffer, fxEvent, fxInputChannel, TGo4EventSource::GetErrMess(), TGo4EventSource::GetEventStatus(), GETEVT__EVENT, GETEVT__NOMORE, GETEVT__REVSERV, GETEVT__STREAM, GETEVT__TIMEOUT, GETEVT__TRANS, GO4TRACE, TGo4Log::Info(), Open(), TGo4EventSource::SetErrMess(), TGo4EventSource::SetEventStatus(), and TGo4Log::Warn().
Referenced by BuildEvent().
Int_t TGo4MbsSource::Open | ( | ) | [virtual] |
Open the file or connection.
Reimplemented in TGo4MbsFile, and TGo4MbsRandom.
Definition at line 339 of file TGo4MbsSource.cxx.
References TGo4Log::Debug(), f_evt_error(), f_evt_get_open(), f_evt_source_port(), f_evt_timeout(), fbIsOpen, fiMode, fiPort, fiTimeout, fxInfoHeader, fxInputChannel, TGo4EventSource::GetCreateStatus(), GETEVT__FILE, GETEVT__SUCCESS, GetMode(), GO4TRACE, TGo4EventSource::SetCreateStatus(), and TGo4EventSource::SetErrMess().
Referenced by NextEvent(), TGo4MbsEventServer::TGo4MbsEventServer(), TGo4MbsStream::TGo4MbsStream(), TGo4MbsTransport::TGo4MbsTransport(), and TGo4RevServ::TGo4RevServ().
void TGo4MbsSource::SetDataCopyMode | ( | Bool_t | on | ) | [inline] |
Definition at line 135 of file TGo4MbsSource.h.
References fbDataCopyMode.
void TGo4MbsSource::SetEventInterval | ( | UInt_t | skipinterval | ) | [inline] |
Definition at line 105 of file TGo4MbsSource.h.
References fuEventInterval.
void TGo4MbsSource::SetPort | ( | Int_t | port | ) | [inline] |
Definition at line 109 of file TGo4MbsSource.h.
References fiPort.
void TGo4MbsSource::SetPrintEvent | ( | Int_t | num = 1 , |
|
Int_t | sid = -1 , |
|||
Int_t | longw = 1 , |
|||
Int_t | hexw = 1 , |
|||
Int_t | dataw = 0 | |||
) |
Set mbs source into printout (verbose) mode for the next num events. Subevent id sid may be specific (-1 is all subevents). Parameters longw, hexw, dataw switch output data formats. See MbsAPI function f_evt_type().
Definition at line 97 of file TGo4MbsSource.cxx.
References TGo4MbsSourcePrintPar::fiData, TGo4MbsSourcePrintPar::fiHex, TGo4MbsSourcePrintPar::fiLong, TGo4MbsSourcePrintPar::fiNum, TGo4MbsSourcePrintPar::fiSid, and fxPrEventPar.
Referenced by TGo4ComSetPrintEvent::ExeCom().
void TGo4MbsSource::SetStartEvent | ( | UInt_t | firstindex | ) | [inline] |
Define the Start index for the NextEvent
Definition at line 101 of file TGo4MbsSource.h.
References fuStartEvent.
void TGo4MbsSource::SetStopEvent | ( | UInt_t | lastindex | ) | [inline] |
Definition at line 103 of file TGo4MbsSource.h.
References fuStopEvent.
void TGo4MbsSource::SetTimeout | ( | Int_t | time | ) | [inline] |
Definition at line 107 of file TGo4MbsSource.h.
References fiTimeout.
Referenced by TGo4MbsSource().
Bool_t TGo4MbsSource::fbDataCopyMode [protected] |
switches buildmbs event mode: if true, data buffer is copied to own buffer of subevent. If false (default), mbs subevent uses reference to external data buffer of eventapi.
Definition at line 164 of file TGo4MbsSource.h.
Referenced by BuildMbsEvent(), BuildMbsSubEvent(), and SetDataCopyMode().
Bool_t TGo4MbsSource::fbFirstEvent [protected] |
Indicates if first event should be extracted
Definition at line 170 of file TGo4MbsSource.h.
Referenced by NextEvent(), TGo4MbsFile::NextEvent(), and TGo4MbsFile::OpenFile().
Bool_t TGo4MbsSource::fbIsOpen [protected] |
Definition at line 159 of file TGo4MbsSource.h.
Referenced by Close(), TGo4MbsRandom::Close(), TGo4MbsFile::Close(), NextEvent(), Open(), TGo4MbsRandom::Open(), and TGo4MbsFile::Open().
const UInt_t TGo4MbsSource::fguEVHEBYCHAR = sizeof(s_evhe) / sizeof(Char_t) [static] |
ratio sizeof(s_evhe) by sizeof(char).
Definition at line 127 of file TGo4MbsSource.h.
Referenced by BuildMbsEvent().
const UInt_t TGo4MbsSource::fguLONGBYCHAR = sizeof(Int_t) / sizeof(Char_t) [static] |
ratio sizeof(long) by sizeof(char).
Definition at line 118 of file TGo4MbsSource.h.
const UInt_t TGo4MbsSource::fguLONGBYSHORT = sizeof(Int_t) / sizeof(Short_t) [static] |
ratio sizeof(long) by sizeof(short).
Definition at line 124 of file TGo4MbsSource.h.
Referenced by TGo4MbsSubEvent::Clear().
const UInt_t TGo4MbsSource::fguSHORTBYCHAR = sizeof(Short_t) / sizeof(Char_t) [static] |
ratio sizeof(short) by sizeof(char).
Definition at line 121 of file TGo4MbsSource.h.
Referenced by BuildMbsEvent().
Int_t TGo4MbsSource::fiMode [private] |
Mode of operation
Definition at line 140 of file TGo4MbsSource.h.
Referenced by GetMode(), NextEvent(), and Open().
Int_t TGo4MbsSource::fiPort [protected] |
Optional port parameter, if non-positive default port number for transport will be used
Definition at line 185 of file TGo4MbsSource.h.
Int_t TGo4MbsSource::fiRetryCnt [private] |
Definition at line 142 of file TGo4MbsSource.h.
Referenced by NextEvent().
Int_t TGo4MbsSource::fiTimeout [protected] |
Timeout in seconds for mbs getevent. If -1, no timeout (default)
Definition at line 182 of file TGo4MbsSource.h.
Referenced by Open(), and SetTimeout().
ULong_t TGo4MbsSource::fuEventCounter [protected] |
Current event index counter
Definition at line 167 of file TGo4MbsSource.h.
Referenced by NextEvent(), TGo4MbsFile::NextEvent(), and TGo4MbsFile::NextFile().
ULong_t TGo4MbsSource::fuEventInterval [protected] |
Number of events to skip from file in between two read events
Definition at line 179 of file TGo4MbsSource.h.
Referenced by NextEvent(), TGo4MbsFile::NextEvent(), TGo4MbsFile::NextFile(), and SetEventInterval().
ULong_t TGo4MbsSource::fuStartEvent [protected] |
Index of first event to process.
Definition at line 173 of file TGo4MbsSource.h.
Referenced by NextEvent(), TGo4MbsFile::NextEvent(), TGo4MbsFile::NextFile(), and SetStartEvent().
ULong_t TGo4MbsSource::fuStopEvent [protected] |
Index of last event to process.
Definition at line 176 of file TGo4MbsSource.h.
Referenced by NextEvent(), TGo4MbsFile::NextEvent(), TGo4MbsFile::NextFile(), and SetStopEvent().
s_bufhe* TGo4MbsSource::fxBuffer [protected] |
Points to the current gsi buffer structure filled by the event source.
Definition at line 154 of file TGo4MbsSource.h.
Referenced by BuildMbsEvent(), and NextEvent().
s_ve10_1* TGo4MbsSource::fxEvent [protected] |
Definition at line 151 of file TGo4MbsSource.h.
Referenced by BuildMbsEvent(), TGo4MbsRandom::Close(), NextEvent(), TGo4MbsRandom::NextEvent(), TGo4MbsFile::NextEvent(), and TGo4MbsRandom::Open().
s_filhe* TGo4MbsSource::fxInfoHeader [protected] |
Reference to header info delivered by source.
Definition at line 157 of file TGo4MbsSource.h.
Referenced by GetInfoHeader(), Open(), and TGo4MbsFile::OpenFile().
s_evt_channel* TGo4MbsSource::fxInputChannel [protected] |
Event channel structure used by event source.
Definition at line 149 of file TGo4MbsSource.h.
Referenced by Close(), TGo4MbsFile::CloseFile(), GetBufferHeader(), NextEvent(), TGo4MbsFile::NextEvent(), Open(), TGo4MbsFile::OpenFile(), TGo4MbsSource(), and ~TGo4MbsSource().
TGo4MbsSourcePrintPar TGo4MbsSource::fxPrEventPar [protected] |
This structure keeps parameters for printevent mode
Definition at line 188 of file TGo4MbsSource.h.
Referenced by BuildMbsEvent(), and SetPrintEvent().