File DatamodelRegistryIOHelpers.h

namespace podio
class DatamodelDefinitionCollector
#include <podio/utilities/DatamodelRegistryIOHelpers.h>

Helper class to collect the datamodel (JSON) definitions that should be written.

Public Functions

void registerDatamodelDefinition(const podio::CollectionBase *coll, const std::string &name)

Register the datamodel definition of the EDM this collection is from to be written.

Parameters:
  • coll – A collection of an EDM

  • name – The name under which this collection is stored on file

std::vector<std::tuple<std::string, std::string>> getDatamodelDefinitionsToWrite() const

Get all the names and JSON definitions that need to be written.

Private Members

std::set<size_t> m_edmDefRegistryIdcs = {}

The indices in the EDM definition registry that need to be written.

class DatamodelDefinitionHolder
#include <podio/utilities/DatamodelRegistryIOHelpers.h>

Helper class to hold and provide the datamodel (JSON) definitions for reader classes.

Public Types

using MapType = std::vector<std::tuple<std::string, std::string>>

The “map” type that is used internally.

Public Functions

inline DatamodelDefinitionHolder(MapType &&definitions)

Constructor from an existing collection of names and datamodel definitions.

DatamodelDefinitionHolder() = default
~DatamodelDefinitionHolder() = default
DatamodelDefinitionHolder(const DatamodelDefinitionHolder&) = delete
DatamodelDefinitionHolder &operator=(const DatamodelDefinitionHolder&) = delete
DatamodelDefinitionHolder(DatamodelDefinitionHolder&&) = default
DatamodelDefinitionHolder &operator=(DatamodelDefinitionHolder&&) = default
const std::string_view getDatamodelDefinition(const std::string &name) const

Get the datamodel definition for the given datamodel name.

Returns an empty model definition if no model is stored under the given name.

Parameters:

name – The name of the datamodel

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

Get all names of the datamodels that have been read from file.

Protected Attributes

MapType m_availEDMDefs = {}