fire v0.19.0
Framework for sImulation and Reconstruction of Events
fire::io::Data< std::map< KeyType, ValType > > Class Template Reference

Our wrapper around std::map. More...

#include <Data.h>

Inheritance diagram for fire::io::Data< std::map< KeyType, ValType > >:
[legend]
Collaboration diagram for fire::io::Data< std::map< KeyType, ValType > >:
[legend]

Public Member Functions

 Data (const std::string &path, Reader *input_file=nullptr, std::map< KeyType, ValType > *handle=nullptr)
 We create three child data sets, one for the successive sizes of the maps and two to hold all the keys and values serially. More...
 
void load (h5::Reader &f) final override
 Load a map from the input file. More...
 
void save (Writer &f) final override
 Save a vector to the output file. More...
 
void structure (Writer &f) final override
 pure virtual method for saving structure More...
 
- Public Member Functions inherited from fire::io::AbstractData< std::map< KeyType, ValType > >
 AbstractData (const std::string &path, Reader *input_file=nullptr, std::map< KeyType, ValType > *handle=nullptr)
 Define the dataset path and provide an optional handle. More...
 
virtual ~AbstractData ()
 Delete our object if we own it, otherwise do nothing. More...
 
virtual void clear ()
 Define the clear function here to handle the most common cases. More...
 
virtual const std::map< KeyType, ValType > & get () const
 Get the current in-memory data. More...
 
int version () const
 Get the version number for the type we are loading from. More...
 
virtual void update (const std::map< KeyType, ValType > &val)
 Update the in-memory data object with the passed value. More...
 
- Public Member Functions inherited from fire::io::BaseData
 BaseData (const std::string &path)
 Define the full in-file path to the data set of this data. More...
 
virtual ~BaseData ()=default
 virtual destructor so inherited classes can be properly destructed.
 

Private Member Functions

 fire_class_version (1)
 

Private Attributes

Data< std::size_tsize_
 the data set of sizes of the vectors
 
Data< KeyType > keys_
 the data set holding the content of all the keys
 
Data< ValType > vals_
 the data set holding the content of all the vals
 

Additional Inherited Members

- Protected Attributes inherited from fire::io::AbstractData< std::map< KeyType, ValType > >
std::optional< std::pair< std::string, int > > load_type_
 type this data is loading from
 
std::pair< std::string, int > save_type_
 type this data that is being used to write
 
std::map< KeyType, ValType > * handle_
 handle on current object in memory
 
bool owner_
 we own the object in memory
 
- Protected Attributes inherited from fire::io::BaseData
std::string path_
 path of data set
 

Detailed Description

template<typename KeyType, typename ValType>
class fire::io::Data< std::map< KeyType, ValType > >

Our wrapper around std::map.

Very similar implementation as vectors, just having two columns rather than only one.

Note
We assume the load/save is done sequentially. Similar rational as io::Data<std::vector<ContentType>>
Template Parameters
KeyTypetype that the keys in the map are
ValTypetype that the vals in the map are

Constructor & Destructor Documentation

◆ Data()

template<typename KeyType , typename ValType >
fire::io::Data< std::map< KeyType, ValType > >::Data ( const std::string path,
Reader input_file = nullptr,
std::map< KeyType, ValType > *  handle = nullptr 
)
inlineexplicit

We create three child data sets, one for the successive sizes of the maps and two to hold all the keys and values serially.

Parameters
[in]pathfull in-file path to set holding this data
[in]handlepointer to object already constructed (optional)

Member Function Documentation

◆ load()

template<typename KeyType , typename ValType >
void fire::io::Data< std::map< KeyType, ValType > >::load ( h5::Reader f)
inlinefinaloverridevirtual

Load a map from the input file.

Note
We assume that the loads are done sequentially.

We read the next size and then read that many items from the keys/vals data sets into the map handle.

Parameters
[in]fh5::Reader to load from

Implements fire::io::AbstractData< std::map< KeyType, ValType > >.

◆ save()

template<typename KeyType , typename ValType >
void fire::io::Data< std::map< KeyType, ValType > >::save ( Writer f)
inlinefinaloverridevirtual

Save a vector to the output file.

Note
We assume that the saves are done sequentially.

We write the size and the keys/vals onto the end of their data sets.

Parameters
[in]fio::Writer to save to

Implements fire::io::AbstractData< std::map< KeyType, ValType > >.

◆ structure()

template<typename KeyType , typename ValType >
void fire::io::Data< std::map< KeyType, ValType > >::structure ( Writer f)
inlinefinaloverridevirtual

pure virtual method for saving structure

Parameters
[in]fWriter to write to

Implements fire::io::AbstractData< std::map< KeyType, ValType > >.


The documentation for this class was generated from the following file: