HDTree  0.5.2
HDTree C++ API
hdtree Namespace Reference

Geant4 does a GLOBAL definition of the keyword TRUE. More...

Namespaces

 class_version_impl
 hide the SFINAE confusing nonsense from the rest of the world
 
 examples
 namespace holding utility functions for example programs
 

Classes

class  BaseBranch
 Empty data base allowing recursion. More...
 
class  AbstractBranch
 Type-specific base class to hold common data methods. More...
 
struct  access
 empty struct for connecting a instance of Data and the type it wraps More...
 
class  Branch< AtomicType, std::enable_if_t< is_atomic_v< AtomicType > > >
 Branch wrapper for atomic types. More...
 
class  Branch
 General data set. More...
 
class  Branch< std::map< KeyType, ValType > >
 Our wrapper around std::map. More...
 
class  Branch< std::vector< ContentType > >
 Our wrapper around std::vector. More...
 
struct  constants
 Structure constants vital to serialization method. More...
 
class  HDTreeException
 user-facing exception class for hdtree More...
 
class  Reader
 Reading a file generated by fire. More...
 
class  Tree
 A container for many branches. More...
 
class  Writer
 Write the fire DataSets into a deterministic structure in the output HDF5 data file. More...
 

Typedefs

template<typename AtomicType >
using is_atomic = std::integral_constant< bool, std::is_arithmetic< AtomicType >::value||std::is_same< AtomicType, std::string >::value >
 HighFive supports many C++ "atomic" types that are used regularly. More...
 

Enumerations

enum class  Bool : bool { TRUE = true , FALSE = false }
 Boolean enum aligned with h5py. More...
 

Functions

HighFive::EnumType< Boolcreate_enum_bool ()
 HighFive method for creating the enum data type.
 
const std::string & VERSION ()
 the recorded CMake version of fire More...
 
const std::string & API ()
 The name of this API for HDTree.
 

Variables

template<typename AtomicType >
constexpr bool is_atomic_v = is_atomic<AtomicType>::value
 shorthand for easier use
 
template<typename T >
constexpr int class_version
 Helper const expression to pull out class version number. More...
 

Detailed Description

Geant4 does a GLOBAL definition of the keyword TRUE.

Typedef Documentation

◆ is_atomic

template<typename AtomicType >
using hdtree::is_atomic = typedef std::integral_constant<bool, std::is_arithmetic<AtomicType>::value || std::is_same<AtomicType, std::string>::value>

HighFive supports many C++ "atomic" types that are used regularly.

In order to conform to our more flexible structure, I have isolated their deduction into this (currently small) header file.

This will make it easier to fold in future atomic types if we see fit.

Enumeration Type Documentation

◆ Bool

enum hdtree::Bool : bool
strong

Boolean enum aligned with h5py.

We serialize bools in the same method as h5py so that Python-based analyses are easier.

Function Documentation

◆ VERSION()

const std::string& hdtree::VERSION ( )

the recorded CMake version of fire

This is defined by the VERSION keyword in the 'project' command in CMakeLists.txt.

Variable Documentation

◆ class_version

template<typename T >
constexpr int hdtree::class_version
inlineconstexpr
Initial value:
=
class_version_impl::deducer<T>::version::value

Helper const expression to pull out class version number.

Assuming T::version is an std::integral_constant (same as the default template struct), we simply pull out that integral_constant value from class_version_impl::deducer.

Template Parameters