Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
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
12class 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
Template Frame for ARS data.
Definition frame.hh:13
unsigned int getFrameLength() const
Definition frame.hh:34
const DAQCommonHeader *const getHeader() const
Definition frame.hh:18
unsigned int getNItems() const
Definition frame.hh:39
unsigned int getSeqNumber() const
Definition frame.hh:29
unsigned int m_seqnumber
Definition frame.hh:14
const char *const getPayload() const
Definition frame.hh:24