10 #include <daq/hbasf2/connections/ZMQHistogramConnection.h>
11 #include <daq/hbasf2/utils/HistogramMapping.h>
13 #include <framework/pcore/zmq/messages/ZMQIdMessage.h>
15 #include <framework/pcore/EvtMessage.h>
16 #include <daq/dqm/DqmMemFile.h>
18 #include <TBufferJSON.h>
55 template<
class AConnectionClass>
59 template<
class... Args>
63 void handleEvent(std::unique_ptr<ZMQIdMessage> message);
84 template<
class AConnectionClass>
85 template<
class... Args>
87 Args&& ... args) : AConnectionClass(std::forward<Args>(args)...), m_maximalUncompressedBufferSize(
88 maximalUncompressedBufferSize)
92 AConnectionClass::log(
"uncompressed_size", 0.0);
93 AConnectionClass::log(
"stored_identities", 0l);
94 AConnectionClass::log(
"histogram_clears", 0l);
95 AConnectionClass::log(
"last_clear",
"");
Add the common functionality to the histogram output classes.
std::optional< unsigned int > m_storedRun
If already received: the run number of the data (on mismatch, everything is cleared)
std::vector< char > m_uncompressedBuffer
The buffer used during decompression.
unsigned int m_maximalUncompressedBufferSize
Paramter for the buffer size (needed during decompression)
void handleEvent(std::unique_ptr< ZMQIdMessage > message)
Handle a new message to be "sent" (what this means is up to the base class) as described above.
std::map< std::string, HistogramMapping > m_storedMessages
The stored histograms for each sender identity.
std::optional< unsigned int > m_storedExperiment
If already received: the experiment number of the data (on mismatch, everything is cleared)
void clear()
Forward a clear call to the base class and clear the stored messages. Should be called on run start.
void mergeAndSend(EMessageTypes messageType=EMessageTypes::c_eventMessage)
Forward a merge call to the base class handing over the stored messages.
ZMQHistogramOutput(unsigned int maximalUncompressedBufferSize, Args &&... args)
Perfectly forward the given arguments to the base class initializer (and init the buffer size)
EMessageTypes
Type the messages can have.
Abstract base class for different kinds of events.