Belle II Software  release-05-02-19
ProcessedEventBackup.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Nils Braun, Anselm Baur *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <framework/dataobjects/EventMetaData.h>
13 #include <framework/pcore/EvtMessage.h>
14 #include <framework/pcore/zmq/messages/ZMQMessageFactory.h>
15 #include <memory>
16 #include <chrono>
17 
18 namespace Belle2 {
23  class ProcessedEventBackup {
26  using TimeStamp = std::chrono::time_point<std::chrono::system_clock>;
27  public:
29  ProcessedEventBackup(std::unique_ptr<EvtMessage> evtMsg, const EventMetaData& evtMetaData,
30  unsigned int workerId);
31 
33  bool operator==(const EventMetaData& rhs);
34 
36  template <class AZMQClient>
37  void sendToSocket(const AZMQClient& socket);
38 
40  const EventMetaData& getEventMetaData() const;
42  const TimeStamp& getTimestamp() const;
44  const unsigned int& getWorkerId() const;
45 
46  private:
48  std::unique_ptr<EvtMessage> m_eventMessage;
52  unsigned int m_workerId;
54  TimeStamp m_timestamp = std::chrono::system_clock::now();
55  };
56 
57  template <class AZMQClient>
58  void ProcessedEventBackup::sendToSocket(const AZMQClient& socket)
59  {
60  auto message = ZMQMessageFactory::createMessage(EMessageTypes::c_eventMessage, m_eventMessage);
61  socket.publish(std::move(message));
62  B2DEBUG(100, "sent backup evt: " << m_eventMetaData.getEvent());
63  }
65 }
Belle2::ProcessedEventBackup::sendToSocket
void sendToSocket(const AZMQClient &socket)
Publish this event backup directly to the given client.
Definition: ProcessedEventBackup.h:66
Belle2::EventMetaData::getEvent
unsigned int getEvent() const
Event Getter.
Definition: EventMetaData.h:155
Belle2::ProcessedEventBackup::m_workerId
unsigned int m_workerId
Getter for the stored worker id.
Definition: ProcessedEventBackup.h:60
Belle2::ProcessedEventBackup::m_eventMessage
std::unique_ptr< EvtMessage > m_eventMessage
Stored event message.
Definition: ProcessedEventBackup.h:56
Belle2::ProcessedEventBackup::TimeStamp
std::chrono::time_point< std::chrono::system_clock > TimeStamp
Short for the class of the time stamp (it is a system clock time stamp)
Definition: ProcessedEventBackup.h:34
Belle2::ProcessedEventBackup::getEventMetaData
const EventMetaData & getEventMetaData() const
Getter for the stored event meta data.
Definition: ProcessedEventBackup.cc:21
Belle2::ProcessedEventBackup::m_eventMetaData
EventMetaData m_eventMetaData
Getter for the stored event meta data.
Definition: ProcessedEventBackup.h:58
Belle2::ProcessedEventBackup::getTimestamp
const TimeStamp & getTimestamp() const
Getter for the stored time stamp.
Definition: ProcessedEventBackup.cc:26
Belle2::ProcessedEventBackup::m_timestamp
TimeStamp m_timestamp
Getter for the stored time stamp.
Definition: ProcessedEventBackup.h:62
Belle2::ProcessedEventBackup::ProcessedEventBackup
ProcessedEventBackup(std::unique_ptr< EvtMessage > evtMsg, const EventMetaData &evtMetaData, unsigned int workerId)
Constructor setting the informations. Takes ownership of the evtMsg.
Definition: ProcessedEventBackup.cc:14
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ProcessedEventBackup::operator==
bool operator==(const EventMetaData &rhs)
Compare operator needed in the backup list.
Definition: ProcessedEventBackup.cc:36
Belle2::ZMQMessageFactory::createMessage
static auto createMessage(const std::string &msgIdentity, const EMessageTypes msgType, const std::unique_ptr< EvtMessage > &eventMessage)
Create an ID Message out of an identity, the type and an event message.
Definition: ZMQMessageFactory.h:37
Belle2::ProcessedEventBackup::getWorkerId
const unsigned int & getWorkerId() const
Getter for the stored worker id.
Definition: ProcessedEventBackup.cc:31
Belle2::EventMetaData
Store event, run, and experiment numbers.
Definition: EventMetaData.h:43