Jpp
frame.hh
Go to the documentation of this file.
1 #ifndef DATAQUEUE_FRAMEFACTORY_FRAME_HH
2 #define DATAQUEUE_FRAMEFACTORY_FRAME_HH
3 
4 #include <vector>
7 
8 /**
9  * \author cpellegrino
10  */
11 
12 class Frame : public std::vector<char>, public benchmark::chronometrable
13 {
14  unsigned int m_seqnumber;
15 
16  public:
17 
18  const DAQCommonHeader* const getHeader() const
19  {
20  return static_cast<const DAQCommonHeader* const>(
21  static_cast<const void* const>(&front()));
22  }
23 
24  const char* const getPayload() const
25  {
26  return &front() + sizeof(DAQCommonHeader);
27  }
28 
29  unsigned int getSeqNumber() const
30  {
31  return m_seqnumber;
32  }
33 
34  unsigned int getFrameLength() const
35  {
36  return size() ? getHeader()->FrameLength : 0;
37  }
38 
39  unsigned int getNItems() const
40  {
41  return size() ? getHeader()->NumberOfItems : 0;
42  }
43 
44  friend class PuzzledFrame;
45 };
46 
47 #endif // DATAQUEUE_FRAMEFACTORY_FRAME_HH
time_tracking.hh
std::vector
Definition: JSTDTypes.hh:12
Frame
Template Frame for ARS data.
Definition: frame.hh:12
Frame::getPayload
const char *const getPayload() const
Definition: frame.hh:24
Frame::getFrameLength
unsigned int getFrameLength() const
Definition: frame.hh:34
Frame::m_seqnumber
unsigned int m_seqnumber
Definition: frame.hh:14
DAQCommonHeader::FrameLength
uint32_t FrameLength
Definition: daq_common_header.hh:14
Frame::getHeader
const DAQCommonHeader *const getHeader() const
Definition: frame.hh:18
Frame::getNItems
unsigned int getNItems() const
Definition: frame.hh:39
Frame::getSeqNumber
unsigned int getSeqNumber() const
Definition: frame.hh:29
DAQCommonHeader::NumberOfItems
uint32_t NumberOfItems
Definition: daq_common_header.hh:27
daq_common_header.hh
benchmark::chronometrable
Definition: time_tracking.hh:18
PuzzledFrame
Definition: puzzled_frame.hh:18
DAQCommonHeader
Definition: daq_common_header.hh:12