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() = default
SIOFrameData(const SIOFrameData&) = delete
SIOFrameData &operator=(const SIOFrameData&) = delete
SIOFrameData(SIOFrameData&&) = default
SIOFrameData &operator=(SIOFrameData&&) = default
inline SIOFrameData(sio::buffer &&collBuffers, std::size_t dataSize, sio::buffer &&tableBuffer, std::size_t tableSize)

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.

std::optional<podio::CollectionReadBuffers> getCollectionBuffers(const std::string &name)
inline podio::CollectionIDTable getIDTable()
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 = {}