6#ifndef HEPMC3_READERPROTOBUF_H
7#define HEPMC3_READERPROTOBUF_H
44 std::string m_version_str;
45 unsigned int m_version_maj;
46 unsigned int m_version_min;
47 unsigned int m_version_patch;
49 unsigned int m_protobuf_version_maj;
50 unsigned int m_protobuf_version_min;
51 unsigned int m_protobuf_version_patch;
88 bool skip(
const int the)
override;
98 void close()
override;
Definition of struct GenEventData.
Definition of class GenEvent.
Definition of interface Reader.
Stores event-related information.
Base class for all I/O readers.
GenEvent I/O parsing and serialization for protobuf-based binary files.
bool read_event(GenEvent &evt) override
Read event from file.
std::string m_msg_buffer
The buffer used to hold the current message binary (header/genruninfo/genevent/footer)
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
bool skip(const int the) override
skips the next N events
HepMC3::GenEventData m_evdata
The event data parsed from the message.
FileHeader m_file_header
A copy of the library version info stored in the proto file header.
void close() override
Close file stream.
bool buffer_message()
Read the next protobuf message into the message buffer.
bool read_GenRunInfo()
Parse the next protobuf message as a GenRunInfo message.
int m_msg_type
The type of current message.
std::unique_ptr< std::ifstream > m_in_file
The file stream of the file being read.
bool read_Header()
Parse the next protobuf message as a Header message.
std::string m_md_buffer
The buffer used to hold the current message digest binary (message frame)
bool read_GenEvent(bool skip=false)
Parse the next protobuf message as a GenEvent message.
bool read_file_start()
Parse the front matter of the protobuf message stream before the events.
FileHeader const & file_header()
Get the header information read from the protobuf file.
size_t m_bytes_read
The total number of event bytes read, including message frames.
Stores serializable event information.