Belle II Software  release-05-02-19
ZMQMessageHelper.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/zmq/messages/ZMQDefinitions.h>
14 #include <framework/pcore/zmq/utils/EventMetaDataSerialization.h>
15 #include <framework/pcore/EvtMessage.h>
16 #include <framework/datastore/StoreObjPtr.h>
17 #include <zmq.hpp>
18 #include <string>
19 #include <memory>
20 
21 namespace Belle2 {
27  class ZMQMessageHelper {
29  public:
31  static zmq::message_t createZMQMessage(zmq::message_t message)
32  {
33  return message;
34  }
35 
37  static zmq::message_t createZMQMessage(const EMessageTypes& c)
38  {
39  return createZMQMessage(std::string(1, static_cast<char>(c)));
40  }
41 
43  static zmq::message_t createZMQMessage(const std::string& s)
44  {
45  return zmq::message_t(s.c_str(), s.length());
46  }
47 
49  static zmq::message_t createZMQMessage(const int i)
50  {
51  return createZMQMessage(std::to_string(i));
52  }
53 
55  static zmq::message_t createZMQMessage(const StoreObjPtr<EventMetaData>& evtMetaData)
56  {
57  const auto& message = EventMetaDataSerialization::serialize(*evtMetaData);
58  return zmq::message_t(message.c_str(), message.length());
59  }
60 
62  static zmq::message_t createZMQMessage(const std::unique_ptr<EvtMessage>& evtMessage)
63  {
64  // TODO: here are the messages copied
65  return zmq::message_t(evtMessage->buffer(), evtMessage->size());
66  }
67 
68  };
70 }
Belle2::EMessageTypes
EMessageTypes
Type the messages can have.
Definition: ZMQDefinitions.h:26
Belle2::ZMQMessageHelper::createZMQMessage
static zmq::message_t createZMQMessage(const std::string &s)
Create a message out of a string.
Definition: ZMQMessageHelper.h:51
Belle2::ZMQMessageHelper::createZMQMessage
static zmq::message_t createZMQMessage(zmq::message_t message)
Just pass a zmq message.
Definition: ZMQMessageHelper.h:39
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::StoreObjPtr
Type-safe access to single objects in the data store.
Definition: ParticleList.h:33
Belle2::EventMetaDataSerialization::serialize
static std::string serialize(const EventMetaData &eventMetaData)
Serialize the event meta data to a string.
Definition: EventMetaDataSerialization.h:47