Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
frame_farm.hh
Go to the documentation of this file.
1#ifndef DATAQUEUE_FRAMEFACTORY_FRAME_FARM_HH
2#define DATAQUEUE_FRAMEFACTORY_FRAME_FARM_HH
3
4#include <boost/atomic.hpp>
5#include <boost/thread/mutex.hpp>
6
7#include <map>
8#include <deque>
9
10#include "puzzled_frame.hh"
11#include "ptr_dispatcher.hh"
12#include "dump_file.hh"
13
14#include <stdint.h>
16
18
19/**
20 * \author cpellegrino
21 */
22
24{
26
27 typedef std::deque<PuzzledFrame*> buffers_collector_t;
28
30
32
34
35 boost::mutex m_mutex;
36
37 boost::mutex m_ebf_mutex;
38
39 boost::atomic<bool> m_running;
40
42
44
45 std::size_t m_max_dump_size;
46
48 unsigned int m_detector_id;
49
51
52 public:
53
54 FrameFarm(unsigned int DeltaTS,
55 uint64_t run_start_time,
56 std::size_t max_dump_size,
57 const std::string& dump_prefix,
58 const std::string& dump_postfix)
59 :
60 m_timeslice_duration(DeltaTS),
61 m_start_run_ms(run_start_time * 1000),
62 m_max_dump_size(max_dump_size),
63 m_run_number(0),
65 m_dumpfile(FilenameGenerator(dump_prefix, dump_postfix), m_max_dump_size)
66 {}
67
68 ~FrameFarm();
69
70 void operator ()();
71
72 void stop()
73 {
74 m_running = false;
76 }
77
78 unsigned int getTimeSliceDuration()
79 {
81 }
82
83 bool insert(CLBDataGram* datagram);
84
85 void getFrame(Frame& frame);
86
87 int runNumber() const
88 {
89 return m_run_number;
90 }
91
92 int runNumber(int rn)
93 {
94 return m_run_number = rn;
95 }
96
97 unsigned int detectorId(unsigned int detector_id)
98 {
99 return m_detector_id = detector_id;
100 }
101
102 private:
103
105};
106
107#endif // DATAQUEUE_FRAMEFACTORY_FRAME_FARM_HH
void stop()
Definition frame_farm.hh:72
void getFrame(Frame &frame)
Definition frame_farm.cc:36
FrameFarm(unsigned int DeltaTS, uint64_t run_start_time, std::size_t max_dump_size, const std::string &dump_prefix, const std::string &dump_postfix)
Definition frame_farm.hh:54
std::deque< PuzzledFrame * > buffers_collector_t
Definition frame_farm.hh:27
ptrDispatcher m_frames
Definition frame_farm.hh:31
int runNumber() const
Definition frame_farm.hh:87
std::size_t m_max_dump_size
Definition frame_farm.hh:45
unsigned int m_detector_id
Definition frame_farm.hh:48
int m_run_number
Definition frame_farm.hh:47
unsigned int getTimeSliceDuration()
Definition frame_farm.hh:78
void operator()()
Definition frame_farm.cc:57
bool insert(CLBDataGram *datagram)
PuzzledFrame * getEmptyPuzzledFrame()
unsigned int detectorId(unsigned int detector_id)
Definition frame_farm.hh:97
DumpFile m_dumpfile
Definition frame_farm.hh:50
std::map< frame_idx_t, PuzzledFrame * > container_t
Definition frame_farm.hh:25
container_t m_container
Definition frame_farm.hh:29
unsigned int m_timeslice_duration
Definition frame_farm.hh:41
boost::atomic< bool > m_running
Definition frame_farm.hh:39
boost::mutex m_ebf_mutex
Definition frame_farm.hh:37
boost::mutex m_mutex
Definition frame_farm.hh:35
uint64_t m_start_run_ms
Definition frame_farm.hh:43
int runNumber(int rn)
Definition frame_farm.hh:92
buffers_collector_t m_empty_buffers
Definition frame_farm.hh:33
Template Frame for ARS data.
Definition frame.hh:13