Jpp
puzzled_frame.hh
Go to the documentation of this file.
1 #ifndef __PUZZLED_FRAME_HH
2 #define __PUZZLED_FRAME_HH
3 
4 #include <map>
5 
6 #include "timer.hh"
7 #include "frame.hh"
8 
11 
12 #include <boost/atomic.hpp>
13 
14 /**
15  * \author cpellegrino
16  */
17 
19 {
20  public:
21 
23 
24  private:
25 
27 
29  unsigned int m_seqnumber;
30  unsigned int m_detector_id;
31  unsigned int m_datatype;
32 
33  unsigned int m_totalsize;
34 
36 
37  public:
38 
39  static boost::atomic<unsigned int> n_obj;
40 
42  :
43  m_seqnumber(0),
44  m_detector_id(0),
45  m_datatype(0),
46  m_totalsize(0),
47  m_frame_idx(0)
48  {
49  ++n_obj;
50  }
51 
53  {
54  reset();
55  --n_obj;
56  }
57 
58  void setTimer(const Timer& exp)
59  {
60  m_expiration.set(exp);
61  }
62 
63  void setSeqNumber(unsigned int seqnumber)
64  {
65  m_seqnumber = seqnumber;
66  }
67 
68  void setDataType(unsigned int datatype)
69  {
70  m_datatype = datatype;
71  }
72 
73  void setDetectorId(unsigned int detector_id)
74  {
75  m_detector_id = detector_id;
76  }
77 
78  void setFrameIndex(frame_idx_t frame_idx)
79  {
80  m_frame_idx = frame_idx;
81  }
82 
83  bool insert(CLBDataGram* datagram);
84 
85  bool hasExpired() const
86  {
87  return m_expiration.hasExpired();
88  }
89 
90  bool hasExpiredWrt(Timer const& t) const
91  {
92  return m_expiration.hasExpiredWrt(t);
93  }
94 
95  void getFrame(Frame &frame);
96 
97  void reset();
98 
99  uint32_t frameLength() const
100  {
101  return m_totalsize +
102  sizeof(DAQCommonHeader) -
103  sizeof(CLBCommonHeader) * m_container.size();
104  }
105 
106  uint32_t frameDomStatus(int i = 1) const;
107 };
108 
109 #endif
Timer::hasExpiredWrt
bool hasExpiredWrt(Timer const &t) const
Definition: timer.cc:7
PuzzledFrame::n_obj
static boost::atomic< unsigned int > n_obj
Definition: puzzled_frame.hh:39
PuzzledFrame::insert
bool insert(CLBDataGram *datagram)
Definition: puzzled_frame.cc:61
PuzzledFrame::frameLength
uint32_t frameLength() const
Definition: puzzled_frame.hh:99
PuzzledFrame::setSeqNumber
void setSeqNumber(unsigned int seqnumber)
Definition: puzzled_frame.hh:63
time_tracking.hh
PuzzledFrame::m_frame_idx
frame_idx_t m_frame_idx
Definition: puzzled_frame.hh:35
PuzzledFrame::m_datatype
unsigned int m_datatype
Definition: puzzled_frame.hh:31
PuzzledFrame::setDetectorId
void setDetectorId(unsigned int detector_id)
Definition: puzzled_frame.hh:73
Frame
Template Frame for ARS data.
Definition: frame.hh:12
PuzzledFrame::setDataType
void setDataType(unsigned int datatype)
Definition: puzzled_frame.hh:68
PuzzledFrame::m_seqnumber
unsigned int m_seqnumber
Definition: puzzled_frame.hh:29
PuzzledFrame::~PuzzledFrame
~PuzzledFrame()
Definition: puzzled_frame.hh:52
PuzzledFrame::reset
void reset()
Definition: puzzled_frame.cc:398
Timer
Definition: timer.hh:10
PuzzledFrame::getFrame
void getFrame(Frame &frame)
Definition: puzzled_frame.cc:304
PuzzledFrame::hasExpired
bool hasExpired() const
Definition: puzzled_frame.hh:85
frame.hh
PuzzledFrame::m_container
container_t m_container
Definition: puzzled_frame.hh:26
std::map< unsigned int, CLBDataGram * >
frame_idx_t
uint64_t frame_idx_t
Definition: clb_common_header.hh:85
PuzzledFrame::setTimer
void setTimer(const Timer &exp)
Definition: puzzled_frame.hh:58
CLBCommonHeader
Definition: clb_common_header.hh:17
CLBDataGram
Definition: clb_datagram.hh:15
clb_datagram.hh
PuzzledFrame::hasExpiredWrt
bool hasExpiredWrt(Timer const &t) const
Definition: puzzled_frame.hh:90
PuzzledFrame::m_detector_id
unsigned int m_detector_id
Definition: puzzled_frame.hh:30
PuzzledFrame::setFrameIndex
void setFrameIndex(frame_idx_t frame_idx)
Definition: puzzled_frame.hh:78
Timer::set
void set(long int seconds, long int useconds)
Definition: timer.cc:27
timer.hh
PuzzledFrame::frameDomStatus
uint32_t frameDomStatus(int i=1) const
Definition: puzzled_frame.cc:21
benchmark::chronometrable
Definition: time_tracking.hh:18
Timer::hasExpired
bool hasExpired() const
Definition: timer.cc:21
PuzzledFrame::PuzzledFrame
PuzzledFrame()
Definition: puzzled_frame.hh:41
PuzzledFrame::container_t
std::map< unsigned int, CLBDataGram * > container_t
Definition: puzzled_frame.hh:22
PuzzledFrame::m_expiration
Timer m_expiration
Definition: puzzled_frame.hh:28
PuzzledFrame::m_totalsize
unsigned int m_totalsize
Definition: puzzled_frame.hh:33
PuzzledFrame
Definition: puzzled_frame.hh:18
DAQCommonHeader
Definition: daq_common_header.hh:12