1#ifndef PODIO_SIOFRAMEREADER_H
2#define PODIO_SIOFRAMEREADER_H
6#include "podio/podioVersion.h"
9#include <sio/definitions.h>
14#include <unordered_map>
18class CollectionIDTable;
35 std::unique_ptr<podio::SIOFrameData>
readNextEntry(
const std::string& name);
42 std::unique_ptr<podio::SIOFrameData>
readEntry(
const std::string& name,
const unsigned entry);
45 unsigned getEntries(
const std::string& name)
const;
47 void openFile(
const std::string& filename);
68 void readPodioHeader();
71 bool readFileTOCRecord();
73 void readEDMDefinitions();
75 sio::ifstream m_stream{};
78 std::unordered_map<std::string, unsigned> m_nameCtr{};
81 SIOFileTOCRecord m_tocRecord{};
85 DatamodelDefinitionHolder m_datamodelHolder{};
std::vector< std::string > getAvailableDatamodels() const
const std::string_view getDatamodelDefinition(const std::string &name) const
podio::version::Version currentFileVersion() const
Get the build version of podio that has been used to write the current file.
unsigned getEntries(const std::string &name) const
Returns number of entries for the given name.
std::vector< std::string > getAvailableDatamodels() const
Get all names of the datamodels that ara available from this reader.
std::vector< std::string_view > getAvailableCategories() const
Get the names of all the availalable Frame categories in the current file(s)
void openFile(const std::string &filename)
SIOFrameReader & operator=(const SIOFrameReader &)=delete
const std::string_view getDatamodelDefinition(const std::string &name) const
Get the datamodel definition for the given name.
~SIOFrameReader()=default
std::unique_ptr< podio::SIOFrameData > readEntry(const std::string &name, const unsigned entry)
std::unique_ptr< podio::SIOFrameData > readNextEntry(const std::string &name)
SIOFrameReader(const SIOFrameReader &)=delete