CbmRoot
Loading...
Searching...
No Matches
CbmTbDaqBuffer Class Reference

Singleton buffer class for CBM raw data. More...

#include <CbmTbDaqBuffer.h>

Collaboration diagram for CbmTbDaqBuffer:
[legend]

Public Types

typedef std::pair< boost::any, ECbmModuleIdData
 

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 CbmTbDaqBufferInstance ()
 

Private Member Functions

 CbmTbDaqBuffer ()
 
 CbmTbDaqBuffer (const CbmTbDaqBuffer &)
 
CbmTbDaqBufferoperator= (const CbmTbDaqBuffer &)
 
void InsertData (boost::any digi, Double_t time, ECbmModuleId systemID)
 

Private Attributes

std::multimap< Double_t, DatafData
 

Static Private Attributes

static CbmTbDaqBufferfgInstance = nullptr
 

Detailed Description

Singleton buffer class for CBM raw data.

Author
Volker Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Date
13 December 2012

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.

Member Typedef Documentation

◆ Data

std::pair<boost::any, ECbmModuleId> CbmTbDaqBuffer::Data

Definition at line 41 of file CbmTbDaqBuffer.h.

Constructor & Destructor Documentation

◆ ~CbmTbDaqBuffer()

CbmTbDaqBuffer::~CbmTbDaqBuffer ( )

Destructor

Definition at line 32 of file CbmTbDaqBuffer.cxx.

◆ CbmTbDaqBuffer() [1/2]

CbmTbDaqBuffer::CbmTbDaqBuffer ( )
private

Default constructor Declared private to prevent instantiation.

Definition at line 27 of file CbmTbDaqBuffer.cxx.

Referenced by Instance().

◆ CbmTbDaqBuffer() [2/2]

CbmTbDaqBuffer::CbmTbDaqBuffer ( const CbmTbDaqBuffer & )
private

Copy constructor. Defined private to prevent usage.

Member Function Documentation

◆ GetNextData()

CbmTbDaqBuffer::Data CbmTbDaqBuffer::GetNextData ( Double_t time)

Pointer to next raw data object up to given time

Parameters
timemaximal time [ns]
Returns
pointer to raw data object

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 52 of file CbmTbDaqBuffer.cxx.

References fData, and kNotExist.

Referenced by CbmDeviceUnpackTofCri::BuildTint(), and CbmDeviceUnpackTofMcbm2018::BuildTint().

◆ GetSize()

Int_t CbmTbDaqBuffer::GetSize ( ) const
inline

◆ GetTimeFirst()

◆ GetTimeLast()

◆ InsertData() [1/2]

void CbmTbDaqBuffer::InsertData ( boost::any digi,
Double_t time,
ECbmModuleId systemID )
inlineprivate

Insert data into the buffer

Parameters
digipointer to data object to be inserted

Definition at line 113 of file CbmTbDaqBuffer.h.

References fData.

◆ InsertData() [2/2]

template<class Digi >
void CbmTbDaqBuffer::InsertData ( Digi * digi)
inline

◆ Instance()

CbmTbDaqBuffer * CbmTbDaqBuffer::Instance ( )
static

Access to singleton instance

Returns
pointer to instance

Definition at line 73 of file CbmTbDaqBuffer.cxx.

References CbmTbDaqBuffer(), and fgInstance.

◆ operator=()

CbmTbDaqBuffer & CbmTbDaqBuffer::operator= ( const CbmTbDaqBuffer & )
private

Assignment operator. Defined private to prevent usage.

◆ PrintStatus()

void CbmTbDaqBuffer::PrintStatus ( ) const

Print buffer status

Definition at line 81 of file CbmTbDaqBuffer.cxx.

References GetSize(), GetTimeFirst(), GetTimeLast(), and size().

Member Data Documentation

◆ fData

std::multimap<Double_t, Data> CbmTbDaqBuffer::fData
private

Buffer management

Definition at line 89 of file CbmTbDaqBuffer.h.

Referenced by GetNextData(), GetSize(), GetTimeFirst(), GetTimeLast(), and InsertData().

◆ fgInstance

CbmTbDaqBuffer * CbmTbDaqBuffer::fgInstance = nullptr
staticprivate

Pointer to singleton instance

Definition at line 93 of file CbmTbDaqBuffer.h.

Referenced by Instance().


The documentation for this class was generated from the following files: