GSI Object Oriented Online Offline (Go4) GO4-6.4.0
|
Generic MBS source. More...
#include <TGo4MbsSource.h>
Public Member Functions | |
TGo4MbsSource () | |
default for streamer | |
TGo4MbsSource (const char *name, Int_t mode) | |
TGo4MbsSource (TGo4MbsSourceParameter *par, Int_t mode) | |
virtual | ~TGo4MbsSource () |
Bool_t | BuildEvent (TGo4EventElement *dest) override |
Fill the destination event. | |
void | BuildMbsEvent (TGo4MbsEvent *target) |
This methods actually fills the target event class which is passed as pointer. | |
TGo4MbsSubEvent * | 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. | |
Bool_t | CheckEventClass (TClass *cl) override |
Check that filled event is a proper class. | |
virtual Int_t | Close () |
Close the file or connection. | |
virtual s_bufhe * | GetBufferHeader () |
User access to current event buffer header. | |
s_filhe * | GetInfoHeader () const |
User access to info header. | |
virtual Int_t | NextEvent () |
Requests the next event from mbs source. | |
virtual Int_t | Open () |
Open the file or connection. | |
void | SetDataCopyMode (Bool_t on) |
void | SetEventInterval (UInt_t skipinterval) |
void | SetPort (Int_t port) |
void | 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. | |
void | SetStartEvent (UInt_t firstindex) |
Define the Start index for the NextEvent. | |
void | SetStopEvent (UInt_t lastindex) |
void | SetTimeout (Int_t time) |
![]() | |
TGo4EventSource () | |
TGo4EventSource (const char *name) | |
virtual | ~TGo4EventSource () |
void | Clear (Option_t *opt="") override |
virtual const char * | GetActiveName () const |
Access to the name of the currently active source. | |
Int_t | GetCreateStatus () const |
Status value of server/file open. | |
const char * | GetErrMess () const |
Status/ error message of the last event. | |
Int_t | GetEventStatus () const |
Status of the last event. | |
Static Public Member Functions | |
static void | SetPollingMode (Bool_t on=kTRUE) |
Static Public Attributes | |
static const UInt_t | fguEVHEBYCHAR = sizeof(s_evhe) / sizeof(Char_t) |
ratio sizeof(s_evhe) by sizeof(char). | |
static const UInt_t | fguLONGBYCHAR = sizeof(Int_t) / sizeof(Char_t) |
ratio sizeof(long) by sizeof(char). | |
static const UInt_t | fguLONGBYSHORT = sizeof(Int_t) / sizeof(Short_t) |
ratio sizeof(long) by sizeof(short). | |
static const UInt_t | fguSHORTBYCHAR = sizeof(Short_t) / sizeof(Char_t) |
ratio sizeof(short) by sizeof(char). | |
![]() | |
static const Int_t | fgiTIMEOUTDEFAULT =1 |
Default timeout in seconds for event input. | |
Protected Attributes | |
Bool_t | fbDataCopyMode {kFALSE} |
switches buildmbs event mode: if true, data buffer is copied to own buffer of subevent. | |
Bool_t | fbFirstEvent {kFALSE} |
Indicates if first event should be extracted. | |
Bool_t | fbIsOpen {kFALSE} |
Bool_t | fbPollingMode {kFALSE} |
Int_t | fiPort {0} |
if true, use short timeout to keep gSystem->ProcessEvents() running | |
Int_t | fiTimeout {0} |
Timeout in seconds for mbs getevent. | |
ULong_t | fuEventCounter {0} |
Current event index counter. | |
ULong_t | fuEventInterval {0} |
Number of events to skip from file in between two read events. | |
ULong_t | fuStartEvent {0} |
Index of first event to process. | |
ULong_t | fuStopEvent {0} |
Index of last event to process. | |
s_bufhe * | fxBuffer {nullptr} |
Points to the current gsi buffer structure filled by the event source. | |
s_ve10_1 * | fxEvent {nullptr} |
s_filhe * | fxInfoHeader {nullptr} |
Reference to header info delivered by source. | |
s_evt_channel * | fxInputChannel {nullptr} |
Event channel structure used by event source. | |
TGo4MbsSourcePrintPar | fxPrEventPar |
This structure keeps parameters for printevent mode. | |
Static Protected Attributes | |
static Bool_t | gbPollingMode = kFALSE |
Private Member Functions | |
Int_t | GetMode () const |
number of allowed reconnect retries | |
Private Attributes | |
Int_t | fiMode {0} |
Mode of operation. | |
Int_t | fiRetryCnt {0} |
Additional Inherited Members | |
![]() | |
enum | { fguTXTLEN = 256 } |
text length More... | |
![]() | |
void | SetCreateStatus (Int_t status) |
Status value of event source init (file/server open). | |
void | SetErrMess (const char *txt) |
To be used for modification of the message by the event source implementation. | |
void | SetEventStatus (Int_t status) |
Status of the last event. | |
void | ThrowEOF (Int_t creastat, Int_t errstat, const char *message,...) |
EOF thrower. | |
void | ThrowError (Int_t creastat, Int_t errstat, const char *message,...) |
Exception thrower. | |
Generic MBS source.
Definition at line 54 of file TGo4MbsSource.h.
TGo4MbsSource::TGo4MbsSource | ( | ) |
default for streamer
Definition at line 77 of file TGo4MbsSource.cxx.
References TGo4EventSource::TGo4EventSource(), f_evt_control(), fbDataCopyMode, fbFirstEvent, fbIsOpen, fbPollingMode, fiMode, fiPort, fiRetryCnt, fiTimeout, fuEventCounter, fuEventInterval, fuStartEvent, fuStopEvent, fxBuffer, fxEvent, fxInfoHeader, fxInputChannel, and GO4TRACE.
Referenced by TGo4MbsEventServer::TGo4MbsEventServer(), TGo4MbsEventServer::TGo4MbsEventServer(), TGo4MbsEventServer::TGo4MbsEventServer(), TGo4MbsFile::TGo4MbsFile(), TGo4MbsFile::TGo4MbsFile(), TGo4MbsFile::TGo4MbsFile(), TGo4MbsRandom::TGo4MbsRandom(), TGo4MbsRandom::TGo4MbsRandom(), TGo4MbsRandom::TGo4MbsRandom(), TGo4MbsStream::TGo4MbsStream(), TGo4MbsStream::TGo4MbsStream(), TGo4MbsTransport::TGo4MbsTransport(), TGo4MbsTransport::TGo4MbsTransport(), TGo4RevServ::TGo4RevServ(), and TGo4RevServ::TGo4RevServ().
TGo4MbsSource::TGo4MbsSource | ( | const char * | name, |
Int_t | mode ) |
Definition at line 58 of file TGo4MbsSource.cxx.
References TGo4EventSource::TGo4EventSource(), f_evt_control(), fbDataCopyMode, fbFirstEvent, fbIsOpen, fbPollingMode, TGo4EventSource::fgiTIMEOUTDEFAULT, fiMode, fiPort, fiRetryCnt, fiTimeout, fuEventCounter, fuEventInterval, fuStartEvent, fuStopEvent, fxBuffer, fxEvent, fxInfoHeader, fxInputChannel, GO4TRACE, and SetTimeout().
TGo4MbsSource::TGo4MbsSource | ( | TGo4MbsSourceParameter * | par, |
Int_t | mode ) |
Definition at line 38 of file TGo4MbsSource.cxx.
References TGo4EventSource::TGo4EventSource(), f_evt_control(), fbDataCopyMode, fbFirstEvent, fbIsOpen, fbPollingMode, fiMode, fiPort, fiRetryCnt, fiTimeout, fuEventCounter, fuEventInterval, fuStartEvent, fuStopEvent, fxBuffer, fxEvent, fxInfoHeader, fxInputChannel, and GO4TRACE.
|
virtual |
Definition at line 91 of file TGo4MbsSource.cxx.
References Close(), fxInputChannel, and GO4TRACE.
|
overridevirtual |
Fill the destination event.
dest |
Reimplemented from TGo4EventSource.
Definition at line 117 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 130 of file TGo4MbsSource.cxx.
References TGo4MbsEvent::AddSubEvent(), TGo4Log::Debug(), f_evt_type(), fbDataCopyMode, fguEVHEBYCHAR, fguSHORTBYCHAR, fxBuffer, fxEvent, fxPrEventPar, TGo4EventSource::GetErrMess(), TGo4EventSource::GetEventStatus(), GETEVT__SUCCESS, GO4TRACE, s_ves10_1::i_subtype, s_ves10_1::i_type, s_evhe::l_dlen, s_ves10_1::l_dlen, TGo4MbsEvent::SetCount(), TGo4MbsEvent::SetDlen(), TGo4MbsEvent::SetDummy(), TGo4EventSource::SetErrMess(), TGo4MbsEvent::SetSubtype(), TGo4MbsSubEvent::SetSubtype(), TGo4MbsEvent::SetTrigger(), TGo4MbsEvent::SetType(), TGo4MbsSubEvent::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 243 of file TGo4MbsSource.cxx.
References TGo4MbsEvent::AddSubEvent(), and fbDataCopyMode.
|
overridevirtual |
Check that filled event is a proper class.
Reimplemented from TGo4EventSource.
Definition at line 112 of file TGo4MbsSource.cxx.
|
virtual |
Close the file or connection.
Reimplemented in TGo4MbsFile, and TGo4MbsRandom.
Definition at line 405 of file TGo4MbsSource.cxx.
References f_evt_get_close(), fbIsOpen, fxInputChannel, TGo4EventSource::GetCreateStatus(), GETEVT__SUCCESS, and GO4TRACE.
Referenced by TGo4MbsEventServer::~TGo4MbsEventServer(), ~TGo4MbsSource(), TGo4MbsStream::~TGo4MbsStream(), TGo4MbsTransport::~TGo4MbsTransport(), TGo4RevServ::~TGo4RevServ(), and NextEvent().
|
virtual |
User access to current event buffer header.
Reimplemented in TGo4MbsRandom.
Definition at line 419 of file TGo4MbsSource.cxx.
References f_evt_get_buffer_ptr(), and fxInputChannel.
Referenced by TGo4MbsEvent::GetMbsBufferHeader().
|
inline |
User access to info header.
May contain additional run information
Definition at line 105 of file TGo4MbsSource.h.
References fxInfoHeader.
Referenced by TGo4MbsEvent::GetMbsSourceHeader().
|
inlineprivate |
number of allowed reconnect retries
Definition at line 139 of file TGo4MbsSource.h.
References fiMode.
Referenced by Open().
|
virtual |
Requests the next event from mbs source.
Returns event status value.
Reimplemented in TGo4MbsFile, and TGo4MbsRandom.
Definition at line 256 of file TGo4MbsSource.cxx.
References Close(), f_evt_error(), f_evt_get_event(), fbFirstEvent, fbIsOpen, fbPollingMode, TGo4EventSource::fguTXTLEN, 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, HandleAnlysisEvents(), TGo4Log::Info(), Open(), TGo4EventSource::SetErrMess(), TGo4EventSource::SetEventStatus(), and TGo4Log::Warn().
Referenced by BuildEvent().
|
virtual |
Open the file or connection.
Reimplemented in TGo4MbsFile, and TGo4MbsRandom.
Definition at line 347 of file TGo4MbsSource.cxx.
References TGo4Log::Debug(), f_evt_error(), f_evt_get_open(), f_evt_source_port(), f_evt_timeout(), fbIsOpen, fbPollingMode, TGo4EventSource::fguTXTLEN, fiMode, fiPort, fiTimeout, fxInfoHeader, fxInputChannel, gbPollingMode, TGo4EventSource::GetCreateStatus(), GETEVT__EVENT, GETEVT__FILE, GETEVT__REVSERV, GETEVT__STREAM, GETEVT__SUCCESS, GETEVT__TRANS, GetMode(), GO4TRACE, HandleAnlysisEvents(), TGo4EventSource::SetCreateStatus(), and TGo4EventSource::SetErrMess().
Referenced by TGo4MbsEventServer::TGo4MbsEventServer(), TGo4MbsEventServer::TGo4MbsEventServer(), TGo4MbsStream::TGo4MbsStream(), TGo4MbsStream::TGo4MbsStream(), TGo4MbsTransport::TGo4MbsTransport(), TGo4MbsTransport::TGo4MbsTransport(), TGo4RevServ::TGo4RevServ(), TGo4RevServ::TGo4RevServ(), and NextEvent().
|
inline |
Definition at line 128 of file TGo4MbsSource.h.
References fbDataCopyMode.
|
inline |
Definition at line 98 of file TGo4MbsSource.h.
References fuEventInterval.
|
static |
|
inline |
Definition at line 102 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 103 of file TGo4MbsSource.cxx.
References fxPrEventPar.
Referenced by TGo4ComSetPrintEvent::ExeCom(), and TGo4MbsEvent::SetPrintEvent().
|
inline |
Define the Start index for the NextEvent.
Definition at line 94 of file TGo4MbsSource.h.
References fuStartEvent.
|
inline |
Definition at line 96 of file TGo4MbsSource.h.
References fuStopEvent.
|
inline |
Definition at line 100 of file TGo4MbsSource.h.
References fiTimeout.
Referenced by TGo4MbsSource().
|
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 159 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), BuildMbsEvent(), BuildMbsSubEvent(), and SetDataCopyMode().
|
protected |
Indicates if first event should be extracted.
Definition at line 165 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), TGo4MbsFile::NextEvent(), NextEvent(), and TGo4MbsFile::OpenFile().
|
protected |
Definition at line 154 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), TGo4MbsFile::Close(), TGo4MbsRandom::Close(), Close(), NextEvent(), TGo4MbsFile::Open(), TGo4MbsRandom::Open(), and Open().
|
protected |
Definition at line 179 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), NextEvent(), and Open().
|
static |
ratio sizeof(s_evhe) by sizeof(char).
Definition at line 120 of file TGo4MbsSource.h.
Referenced by BuildMbsEvent().
|
static |
ratio sizeof(long) by sizeof(char).
Definition at line 111 of file TGo4MbsSource.h.
|
static |
ratio sizeof(long) by sizeof(short).
Definition at line 117 of file TGo4MbsSource.h.
Referenced by TGo4MbsSubEvent::Clear().
|
static |
ratio sizeof(short) by sizeof(char).
Definition at line 114 of file TGo4MbsSource.h.
Referenced by BuildMbsEvent().
|
private |
Mode of operation.
Definition at line 135 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), GetMode(), NextEvent(), and Open().
|
protected |
if true, use short timeout to keep gSystem->ProcessEvents() running
Optional port parameter, if non-positive default port number for transport will be used
Definition at line 182 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), Open(), and SetPort().
|
private |
Definition at line 137 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), and NextEvent().
|
protected |
Timeout in seconds for mbs getevent.
If -1, no timeout (default)
Definition at line 177 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), Open(), and SetTimeout().
|
protected |
Current event index counter.
Definition at line 162 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), TGo4MbsFile::NextEvent(), NextEvent(), and TGo4MbsFile::NextFile().
|
protected |
Number of events to skip from file in between two read events.
Definition at line 174 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), TGo4MbsFile::NextEvent(), NextEvent(), TGo4MbsFile::NextFile(), and SetEventInterval().
|
protected |
Index of first event to process.
Definition at line 168 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), TGo4MbsFile::NextEvent(), NextEvent(), TGo4MbsFile::NextFile(), and SetStartEvent().
|
protected |
Index of last event to process.
Definition at line 171 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), TGo4MbsFile::NextEvent(), NextEvent(), TGo4MbsFile::NextFile(), and SetStopEvent().
|
protected |
Points to the current gsi buffer structure filled by the event source.
Definition at line 149 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), BuildMbsEvent(), and NextEvent().
|
protected |
Definition at line 146 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), BuildMbsEvent(), TGo4MbsRandom::Close(), TGo4MbsFile::NextEvent(), TGo4MbsRandom::NextEvent(), NextEvent(), and TGo4MbsRandom::Open().
|
protected |
Reference to header info delivered by source.
Definition at line 152 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), GetInfoHeader(), Open(), and TGo4MbsFile::OpenFile().
|
protected |
Event channel structure used by event source.
Definition at line 144 of file TGo4MbsSource.h.
Referenced by TGo4MbsSource(), TGo4MbsSource(), TGo4MbsSource(), ~TGo4MbsSource(), Close(), TGo4MbsFile::CloseFile(), GetBufferHeader(), TGo4MbsFile::NextEvent(), NextEvent(), Open(), and TGo4MbsFile::OpenFile().
|
protected |
This structure keeps parameters for printevent mode.
Definition at line 185 of file TGo4MbsSource.h.
Referenced by BuildMbsEvent(), and SetPrintEvent().
|
staticprotected |
Definition at line 187 of file TGo4MbsSource.h.
Referenced by Open(), and SetPollingMode().