Belle II Software  release-05-02-19
StreamHelper.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 *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 #include <framework/pcore/DataStoreStreamer.h>
12 #include <framework/pcore/zmq/messages/ZMQNoIdMessage.h>
13 #include <framework/datastore/StoreObjPtr.h>
14 #include <framework/core/RandomGenerator.h>
15 
16 #include <memory>
17 
18 namespace Belle2 {
24  class StreamHelper {
26  public:
28  void initialize(int compressionLevel, bool handleMergeable);
30  std::unique_ptr<EvtMessage> stream(bool addPersistentDurability = true, bool streamTransientObjects = true);
32  void read(std::unique_ptr<ZMQNoIdMessage> message);
33 
34  private:
36  std::unique_ptr<DataStoreStreamer> m_streamer;
39  };
41 }
Belle2::StreamHelper::stream
std::unique_ptr< EvtMessage > stream(bool addPersistentDurability=true, bool streamTransientObjects=true)
Stream the data store into an event message.
Definition: StreamHelper.cc:31
Belle2::StreamHelper::initialize
void initialize(int compressionLevel, bool handleMergeable)
Initialize this class. Call this e.g. in the first event.
Definition: StreamHelper.cc:20
Belle2::StreamHelper::m_streamer
std::unique_ptr< DataStoreStreamer > m_streamer
The data store streamer to use.
Definition: StreamHelper.h:44
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::StreamHelper::read
void read(std::unique_ptr< ZMQNoIdMessage > message)
Read in a ZMQ message and rebuilt the data store from it.
Definition: StreamHelper.cc:43
Belle2::StreamHelper::m_randomGenerator
StoreObjPtr< RandomGenerator > m_randomGenerator
The random generator object in the data store that we need to transport also.
Definition: StreamHelper.h:46