File SIOFrameData.h

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

The Frame data container for the SIO backend.

It is constructed from the compressed sio::buffers that is read from file and does all the necessary unpacking and decompressing internally after construction.

Public Functions

SIOFrameData() = delete
~SIOFrameData()
SIOFrameData(const SIOFrameData&) = delete
SIOFrameData &operator=(const SIOFrameData&) = delete
SIOFrameData(SIOFrameData&&) = default
SIOFrameData &operator=(SIOFrameData&&) = default
SIOFrameData(sio::buffer &&collBuffers, std::size_t dataSize, sio::buffer &&tableBuffer, std::size_t tableSize, std::vector<std::string> limitColls = {})

Constructor from the collBuffers containing the collection data and a tableBuffer containing the necessary information for unpacking the collections.

The two size parameters denote the uncompressed size of the respective buffers.

In case the limitColls contain a collection name that is not available from the idTable names this throws an exception

std::optional<podio::CollectionReadBuffers> getCollectionBuffers(const std::string &name)
inline podio::CollectionIDTable getIDTable() const
std::unique_ptr<podio::GenericParameters> getParameters()
std::vector<std::string> getAvailableCollections()

Private Functions

void unpackBuffers()
void readIdTable()
void createBlocks()

Private Members

sio::buffer m_recBuffer = {sio::kbyte}

The compressed record (data) buffer.

sio::buffer m_tableBuffer = {sio::kbyte}

The compressed collection id table buffer.

std::size_t m_dataSize = {}

Uncompressed data buffer size.

std::size_t m_tableSize = {}

Uncompressed table size.

std::vector<short> m_availableBlocks = {}

The blocks that have already been retrieved.

sio::block_list m_blocks = {}
podio::CollectionIDTable m_idTable = {}
std::vector<std::string> m_typeNames = {}
std::vector<short> m_subsetCollectionBits = {}
podio::GenericParameters m_parameters = {}
std::vector<std::string> m_limitColls = {}

The collections that should be made available for a Frame constructed from this (if non-empty)