|
CbmRoot
|
Singleton buffer class for CBM raw data. More...
#include <CbmTbDaqBuffer.h>
Public Types | |
| typedef std::pair< boost::any, ECbmModuleId > | Data |
Public Member Functions | |
| ~CbmTbDaqBuffer () | |
| Data | GetNextData (Double_t time) |
| Int_t | GetSize () const |
| Double_t | GetTimeFirst () const |
| Double_t | GetTimeLast () const |
| void | PrintStatus () const |
| template<class Digi> | |
| void | InsertData (Digi *digi) |
Static Public Member Functions | |
| static CbmTbDaqBuffer * | Instance () |
Private Member Functions | |
| CbmTbDaqBuffer () | |
| CbmTbDaqBuffer (const CbmTbDaqBuffer &) | |
| CbmTbDaqBuffer & | operator= (const CbmTbDaqBuffer &) |
| void | InsertData (boost::any digi, Double_t time, ECbmModuleId systemID) |
Private Attributes | |
| std::multimap< Double_t, Data > | fData |
Static Private Attributes | |
| static CbmTbDaqBuffer * | fgInstance = nullptr |
Singleton buffer class for CBM raw data.
The CbmTbDaqBuffer stores and sorts (w.r.t. time) CBM raw data (currently: boost::any) transiently. Data can be send to the buffer by the method InsertData. They can be retrieved by GetNextData, which delivers a time-ordered sequence of raw data objects.
There is only one buffer stream, irrespective of the detector system.
The buffer handles objects only by pointer, i.e. the data have to be instantiated by the sending task (digitiser) and deleted by the receiving class (CbmDaq).
Definition at line 39 of file CbmTbDaqBuffer.h.
| typedef std::pair<boost::any, ECbmModuleId> CbmTbDaqBuffer::Data |
Definition at line 41 of file CbmTbDaqBuffer.h.
| CbmTbDaqBuffer::~CbmTbDaqBuffer | ( | ) |
Destructor
Definition at line 31 of file CbmTbDaqBuffer.cxx.
|
private |
Default constructor Declared private to prevent instantiation.
Definition at line 26 of file CbmTbDaqBuffer.cxx.
References fData.
Referenced by CbmTbDaqBuffer(), Instance(), and operator=().
|
private |
Copy constructor. Defined private to prevent usage.
References CbmTbDaqBuffer().
| CbmTbDaqBuffer::Data CbmTbDaqBuffer::GetNextData | ( | Double_t | time | ) |
Pointer to next raw data object up to given time
| time | maximal time [ns] |
A NULL pointer will be returned if no further data can be released. This does not mean that the buffer is empty.
Definition at line 51 of file CbmTbDaqBuffer.cxx.
|
inline |
Current buffer size
Definition at line 61 of file CbmTbDaqBuffer.h.
References fData.
Referenced by GetTimeFirst(), GetTimeLast(), and PrintStatus().
| Double_t CbmTbDaqBuffer::GetTimeFirst | ( | ) | const |
Get first digi time
Definition at line 34 of file CbmTbDaqBuffer.cxx.
References fData, and GetSize().
Referenced by PrintStatus().
| Double_t CbmTbDaqBuffer::GetTimeLast | ( | ) | const |
Get last digi time
Definition at line 42 of file CbmTbDaqBuffer.cxx.
References fData, and GetSize().
Referenced by PrintStatus().
|
inlineprivate |
Insert data into the buffer
| digi | pointer to data object to be inserted |
Definition at line 113 of file CbmTbDaqBuffer.h.
References fData.
|
inline |
Insert digi of any type into the buffer
Definition at line 80 of file CbmTbDaqBuffer.h.
References InsertData().
Referenced by InsertData().
|
static |
Access to singleton instance
Definition at line 72 of file CbmTbDaqBuffer.cxx.
References CbmTbDaqBuffer(), and fgInstance.
|
private |
Assignment operator. Defined private to prevent usage.
References CbmTbDaqBuffer().
| void CbmTbDaqBuffer::PrintStatus | ( | ) | const |
Print buffer status
Definition at line 80 of file CbmTbDaqBuffer.cxx.
References GetSize(), GetTimeFirst(), GetTimeLast(), and size().
|
private |
Buffer management
Definition at line 89 of file CbmTbDaqBuffer.h.
Referenced by CbmTbDaqBuffer(), GetNextData(), GetSize(), GetTimeFirst(), GetTimeLast(), and InsertData().
|
staticprivate |
Pointer to singleton instance
Definition at line 93 of file CbmTbDaqBuffer.h.
Referenced by Instance().