File CollectionBuffers.h

namespace podio

Typedefs

template<typename T>
using UVecPtr = std::unique_ptr<std::vector<T>>
using CollRefCollection = std::vector<UVecPtr<podio::ObjectID>>
using VectorMembersInfo = std::vector<std::pair<std::string, void*>>
struct CollectionReadBuffers
#include <podio/CollectionBuffers.h>

Public Types

using CreateFuncT = std::function<std::unique_ptr<podio::CollectionBase>(podio::CollectionReadBuffers, bool)>
using RecastFuncT = std::function<void(CollectionReadBuffers&)>
using DeleteFuncT = std::function<void(CollectionReadBuffers&)>

Public Functions

inline CollectionReadBuffers(void *d, CollRefCollection *ref, VectorMembersInfo *vec, SchemaVersionT version, std::string_view typ, CreateFuncT &&createFunc, RecastFuncT &&recastFunc, DeleteFuncT &&deleteFunc)
CollectionReadBuffers() = default
CollectionReadBuffers(const CollectionReadBuffers&) = default
CollectionReadBuffers &operator=(const CollectionReadBuffers&) = default
inline CollectionReadBuffers(CollectionWriteBuffers buffers)
template<typename DataT>
inline std::vector<DataT> *dataAsVector()

Public Members

void *data = {nullptr}
CollRefCollection *references = {nullptr}
VectorMembersInfo *vectorMembers = {nullptr}
SchemaVersionT schemaVersion = {0}
std::string_view type = {}
CreateFuncT createCollection = {}
RecastFuncT recast = {}
DeleteFuncT deleteBuffers = {}

Public Static Functions

template<typename T>
static inline std::vector<T> *asVector(void *raw)
struct CollectionWriteBuffers
#include <podio/CollectionBuffers.h>

Simple helper struct that bundles all the potentially necessary buffers that are necessary to represent a collection for I/O purposes.

Public Functions

template<typename DataT>
inline std::vector<DataT> *dataAsVector()

Public Members

void *data = {nullptr}
void *vecPtr = {nullptr}
CollRefCollection *references = {nullptr}
VectorMembersInfo *vectorMembers = {nullptr}

Public Static Functions

template<typename T>
static inline std::vector<T> *asVector(void *raw)