Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
unsigned int m_seqnumber
Definition: frame.hh:14
unsigned int getSeqNumber() const
Definition: frame.hh:29
unsigned int getNItems() const
Definition: frame.hh:39
const DAQCommonHeader *const getHeader() const
Definition: frame.hh:18
const char *const getPayload() const
Definition: frame.hh:24
Definition: frame.hh:12
unsigned int getFrameLength() const
Definition: frame.hh:34