6#ifndef HEPMC3_READERPROTOBUF_H
7#define HEPMC3_READERPROTOBUF_H
29#include "HepMC3/HepMC3.pb.h"
31#include "google/protobuf/io/zero_copy_stream_impl.h"
77 bool skip(
const int n)
override;
87 void close()
override;
Definition of class GenEvent.
Definition of interface Reader.
Stores event-related information.
HepMC3_pb::GenRunInfoData m_gri_pb
GenRunInfo data.
bool read_event(GenEvent &evt) override
Read event from file.
std::istream * m_in_stream
The stream object that is read from.
bool failed() override
Get stream error state.
Readerprotobuf(const std::string &filename)
filename constructor
HepMC3_pb::MessageDigest m_md_pb
Message digest.
bool skip(const int n) override
skips the next n events
HepMC3_pb::Header m_hdr_pb
Header.
void close() override
Close file stream.
bool read_GenEvent(bool skip, GenEvent &evt)
Parse the next protobuf message as a GenEvent message.
HepMC3_pb::GenEventData m_evt_pb
GenEventInfo data.
std::unique_ptr< google::protobuf::io::IstreamInputStream > m_in_zcistream
Stream input.
bool read_digest()
Read the next protobuf message digest.
bool read_GenRunInfo()
Parse the next protobuf message as a GenRunInfo message.
std::unique_ptr< google::protobuf::io::FileInputStream > m_inf_zcstream
File input.
bool read_Header()
Parse the next protobuf message as a Header message.
bool read_file_start()
Parse the front matter of the protobuf message stream before the events.
std::shared_ptr< std::istream > m_shared_stream
Passed in shared_ptr to an input stream.
google::protobuf::io::ZeroCopyInputStream * m_in_zcstream
Zero copy input stream.