File SIOFrameReader.h

namespace podio
class SIOFrameReader
#include <podio/SIOFrameReader.h>

Public Functions

SIOFrameReader()
~SIOFrameReader() = default
SIOFrameReader(const SIOFrameReader&) = delete
SIOFrameReader &operator=(const SIOFrameReader&) = delete
std::unique_ptr<podio::SIOFrameData> readNextEntry(const std::string &name)

Read the next data entry from which a Frame can be constructed for the given name.

In case there are no more entries left for this name or in case there is no data for this name, this returns a nullptr.

std::unique_ptr<podio::SIOFrameData> readEntry(const std::string &name, const unsigned entry)

Read the specified data entry from which a Frame can be constructed for the given name.

In case the entry does not exist for this name or in case there is no data for this name, this returns a nullptr.

unsigned getEntries(const std::string &name) const

Returns number of entries for the given name.

void openFile(const std::string &filename)
inline podio::version::Version currentFileVersion() const

Get the build version of podio that has been used to write the current file.

std::vector<std::string_view> getAvailableCategories() const

Get the names of all the available Frame categories in the current file(s)

inline const std::string_view getDatamodelDefinition(const std::string &name) const

Get the datamodel definition for the given name.

inline std::vector<std::string> getAvailableDatamodels() const

Get all names of the datamodels that ara available from this reader.

Private Functions

void readPodioHeader()
bool readFileTOCRecord()

read the TOC record

void readEDMDefinitions()

Private Members

sio::ifstream m_stream = {}

The stream from which we read.

std::unordered_map<std::string, unsigned> m_nameCtr = {}

Count how many times each an entry of this name has been read already.

SIOFileTOCRecord m_tocRecord = {}

Table of content record where starting points of named entries can be read from.

podio::version::Version m_fileVersion = {0}

The podio version that has been used to write the file.

DatamodelDefinitionHolder m_datamodelHolder = {}