EventAnalysis  1.0.0
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
EA Namespace Reference

IncludeFileExc.h IncludeFileExc class declaration. More...

Namespaces

 _Private
 
 Insertion
 
 Retrieval
 
 SmartLog
 
 StringUtils
 A namespace with some utility methods for strings.
 

Classes

class  Algorithm
 Algorithm interface. More...
 
class  AlgoSequence
 Algorithm made by multiple basic algorithms. More...
 
class  AlgoSequenceDecorator
 Base class for sequence decorators. More...
 
class  AnalysisManager
 The top-level class managing the setup and run of the data analysis. More...
 
struct  and_
 
struct  and_< B1, B2 >
 
struct  and_<>
 
class  ClingMacroConfigurator
 Configures the analysis according to a Cling macro. More...
 
class  CommandLineParameters
 A class to store parameters passed from command line. More...
 
class  CommandLineParser
 Parser for command line options. More...
 
class  ConfigLineHandler
 Interface for classes handling single lines from configuration text files. More...
 
class  Configurable
 Interface for a configurable class. More...
 
class  ConfigurationTokensHandler
 Interface of configuration token handler classes. More...
 
class  Configurator
 Interface for analysis configurator. More...
 
struct  DataObjectHandler
 
class  DataProvider
 A base class for data providers. More...
 
class  DataProviderConfigurationTokensHandler
 
class  DataProviderManager
 Manager class for data providers. More...
 
class  DataStore
 Data store class. More...
 
class  DataStoreManager
 Manager class for data stores. More...
 
class  DataStoreUser
 Interface for classes needing access to the data stores. More...
 
class  Demangler
 A simple name demangler. More...
 
class  DynamicLoader
 Class to dynamically load and manage shared libraries. More...
 
class  EventDataCache
 A cache for event data object. More...
 
class  EventDataCacheManager
 Manager class for event data cache objects. More...
 
class  EventDataStore
 
class  EventLoop
 Interface for event loop classes. More...
 
class  EventLoopConfigurationTokensHandler
 
class  EventLoopProxy
 A proxy class for EventLoop objects. More...
 
class  Exception
 
class  Factory
 Template factory class. More...
 
class  FileUtils
 A static class with file utility functions. More...
 
class  Filter
 Filter class. More...
 
class  GarbageCollectorDecorator
 A garbage collector decorator for an algorithm sequence. More...
 
class  GlobalDataStore
 
class  IncludeFileExc
 Exception for including a configuration file. More...
 
class  Info
 Interface for retrieving informations about an object. More...
 
struct  is_observer_ptr
 
struct  is_observer_ptr< observer_ptr< T > >
 
class  Memory
 A static class containing helper functions for interrogating the memory status. More...
 
struct  not_
 
class  ObjectConsumer
 Interface for a class which consumes data objects. More...
 
class  ObjectMap
 A map between strings and objects of ObjectWrapper kind. More...
 
class  ObjectProducer
 Interface for a class which produced data objects. More...
 
class  ObjectWrapper
 Generic wrapper class. More...
 
class  ObjectWrapperBase
 Mother class for data wrapper template class. More...
 
class  ObjectWrapperT
 Wrapper class for non-copy-constructible objects. More...
 
class  ObjectWrapperT< DataType, typename std::enable_if< smart_is_copy_constructible< DataType >::value >::type >
 Wrapper class for copy-constructible objects. More...
 
class  ObjectWrapperTImpl
 Wrapper for data objects. More...
 
class  ObjPtr
 Class describing a pointer to an object retrieved from an ObjectMap. More...
 
class  observer_ptr
 A smart pointer not owning the wrapped object. More...
 
struct  one_observer_ptr
 
struct  one_observer_ptr_and_no_pointer
 
struct  or_
 
struct  or_< B1, B2 >
 
struct  or_<>
 
class  OwningDataStore
 A data store owning all of the contained objects. More...
 
class  PassDataStore
 
class  PersistenceAlgo
 An algorithm that saves data objects. More...
 
class  PersistenceConfigurationTokensHandler
 
class  PersistenceService
 
class  PersistenceServiceManager
 Manager class for persistence services. More...
 
class  RemovedObjectsTracker
 A tracker class for data objects. More...
 
class  RootDataProvider
 Data provider for Root file written by RootPersistenceService. More...
 
class  RootMacroConfigurator
 Configures the analysis according to a Root macro. More...
 
class  RootPersistenceService
 
class  SequenceDataChecker
 Class for ensuring data consistency in a given sequence. More...
 
struct  smart_test
 
struct  smart_test< test, std::list< T, A > >
 
struct  smart_test< test, std::vector< T, A > >
 
class  SparseChain
 A chain that reads only branches which have an address. More...
 
class  SparseTree
 A tree that reads only branches which have an address. More...
 
class  TextFileConfigurator
 Configures the analysis according to a configuration text file. More...
 
class  TokenizedConfigLineHandler
 Class for handling tokenized lines from configuration text files. More...
 

Typedefs

template<typename T >
using smart_is_copy_constructible = smart_test< std::is_copy_constructible, typename std::decay< T >::type >
 
using ProviderPtr = observer_ptr< DataProvider >
 
typedef observer_ptr< DataStoreStorePtr
 
typedef observer_ptr< GlobalDataStoreGlobalStorePtr
 
typedef observer_ptr< PassDataStorePassStorePtr
 
typedef observer_ptr< EventDataStoreEventStorePtr
 
using PersistencePtr = observer_ptr< PersistenceService >
 

Enumerations

enum  FilterLogic { FilterLogic::DIRECT, FilterLogic::INVERSE }
 
enum  FilterStatus { FilterStatus::ENABLED, FilterStatus::DISABLED }
 
enum  FilterResult { FilterResult::ACCEPT, FilterResult::REJECT }
 
enum  InsertionResult {
  InsertionResult::SUCCESS, InsertionResult::DUPLICATE, InsertionResult::NAMEALIASCLASH, InsertionResult::BADALIASEDTYPE,
  InsertionResult::MISSINGALIASEDOBJECT, InsertionResult::ALIASOFALIAS, InsertionResult::ERROR
}
 
enum  RetrievalResult {
  RetrievalResult::SUCCESS, RetrievalResult::NOTAVAILABLE, RetrievalResult::BADCLASS, RetrievalResult::NOTFOUND,
  RetrievalResult::ERROR
}
 
enum  ObjectCategory : int { ObjectCategory::NONE, ObjectCategory::EVENT, ObjectCategory::PASS, ObjectCategory::GLOBAL }
 Category of objects. More...
 

Functions

bool InheritsFrom (const std::type_info &type, const std::type_info &baseType)
 Check if a given type inherits from a given class. More...
 
bool InheritsFrom (void *objPtr, const std::type_info &baseType)
 Check if a pointed object inherits from a given class. More...
 
const std::string & ToString (InsertionResult ir)
 Convert an InsertionResult to a string. More...
 
std::ostream & operator<< (std::ostream &out, InsertionResult ir)
 Insertion operator for InsertionResult. More...
 
template<typename T , typename W >
std::enable_if_t< std::is_pointer< W >::value, bool > operator== (const observer_ptr< T > &p1, const W &p2)
 
template<typename T , typename W >
std::enable_if_t< std::is_pointer< W >::value, bool > operator== (const W &p1, const observer_ptr< T > &p2)
 
template<typename T , typename W >
std::enable_if_t< one_observer_ptr_and_no_pointer< T, W >::value, bool > operator== (const T &p1, const W &p2)
 
template<typename T , typename W >
std::enable_if_t< one_observer_ptr< T, W >::value, bool > operator!= (const T &p1, const W &p2)
 
bool operator< (const RetrievalResult lhs, const RetrievalResult rhs)
 Comparison operator for retrieval results. More...
 
const std::string & ToString (RetrievalResult rr)
 Convert a RetrievResult to a string. More...
 
std::ostream & operator<< (std::ostream &out, RetrievalResult rr)
 Insertion operator for RetrievalResult. More...
 
void * wrapper_cast (ObjectWrapper &wrapper, const std::type_info &typeInfo)
 Cast function to extract wrapped pointer from wrapper in a type-safe way. More...
 
template<typename DataType >
observer_ptr< typename std::enable_if< std::is_class< DataType >::value, DataType >::type > wrapper_cast (ObjectWrapper &wrapper)
 Cast function to extract wrapped pointer from wrapper in a type-safe way. More...
 
template<typename DataType >
observer_ptr< typename std::enable_if<!std::is_class< DataType >::value, DataType >::type > wrapper_cast (ObjectWrapper &wrapper)
 Cast function to extract wrapped pointer from wrapper in a type-safe way. More...
 
std::ostream & operator<< (std::ostream &out, const ObjectCategory &category)
 
std::ostream & operator<< (std::ostream &out, const Memory::Status status)
 Insertion operator for Memory::Status. More...
 
 RegisterAlgorithm (PersistenceAlgo)
 
 RegisterClass (Configurator, ClingMacroConfigurator)
 
 RegisterTokensHandler (DataProviderConfigurationTokensHandler, "DataProvider")
 
 RegisterTokensHandler (EventLoopConfigurationTokensHandler, "EventLoop")
 
 RegisterTokensHandler (PersistenceConfigurationTokensHandler, "Persistence")
 
 RegisterTokensHandler (PersistenceConfigurationTokensHandler, "PersistenceTemplate")
 
 RegisterClass (Configurator, RootMacroConfigurator)
 
 RegisterClass (Configurator, TextFileConfigurator)
 
 RegisterLineHandler (TokenizedConfigLineHandler)
 
 RegisterDataProvider (RootDataProvider)
 
 RegisterPersistence (RootPersistenceService)
 

Variables

const std::array< std::string, 4 > ObjectCategoryName {"None", "Event", "Pass", "Global"}
 
const std::array< const std::string, 4 > memLevelNames {"NORMAL", "WARNING", "CRITICAL", "EXHAUSTED"}
 Printable names for the memory levels. More...
 

Detailed Description

IncludeFileExc.h IncludeFileExc class declaration.

PersistenceServiceManager.h PersistenceServiceManager class declaration.

Typedef Documentation

◆ EventStorePtr

◆ GlobalStorePtr

◆ PassStorePtr

◆ PersistencePtr

◆ ProviderPtr

◆ smart_is_copy_constructible

template<typename T >
using EA::smart_is_copy_constructible = typedef smart_test<std::is_copy_constructible, typename std::decay<T>::type>

◆ StorePtr

Enumeration Type Documentation

◆ FilterLogic

enum EA::FilterLogic
strong
Enumerator
DIRECT 
INVERSE 

◆ FilterResult

enum EA::FilterResult
strong
Enumerator
ACCEPT 
REJECT 

◆ FilterStatus

enum EA::FilterStatus
strong
Enumerator
ENABLED 
DISABLED 

◆ InsertionResult

enum EA::InsertionResult
strong
Enumerator
SUCCESS 
DUPLICATE 

Object inserted.

NAMEALIASCLASH 

Object already present.

BADALIASEDTYPE 

Clash between object name and already inserted alias, or vice-versa.

MISSINGALIASEDOBJECT 

Bad type of aliased object when re-assigning the alias.

ALIASOFALIAS 

Aliased object is not present.

ERROR 

Aliased objet is an alias.

Generic error in object insertion procedure

◆ ObjectCategory

enum EA::ObjectCategory : int
strong

Category of objects.

Enumerator
NONE 
EVENT 

Undefined value (for default initialization).

PASS 

Objects with values defined on a per-event basis.

GLOBAL 

Objects with values defined on a per-pass basis.

Objects with values defined over the whole data processing.

◆ RetrievalResult

enum EA::RetrievalResult
strong
Enumerator
SUCCESS 
NOTAVAILABLE 

Object found.

BADCLASS 

Known object but not available at the moment.

NOTFOUND 

Object found but class does not match with requested.

ERROR 

Unknown object.

Generic error in object retrieve procedure

Function Documentation

◆ InheritsFrom() [1/2]

bool EA::InheritsFrom ( const std::type_info &  type,
const std::type_info &  baseType 
)

Check if a given type inherits from a given class.

Runtime check for class inheritance. Given a type_info object, this function checks if it inherits from the given base type.

Parameters
typeThe type to check.
typeThe base type.
Returns
true if type inherits from the base type.

◆ InheritsFrom() [2/2]

bool EA::InheritsFrom ( void *  objPtr,
const std::type_info &  baseType 
)

Check if a pointed object inherits from a given class.

Runtime check for class inheritance. This methods checks if the object pointed by the given pointer is a child of the template parameter class. When no pointer of the right type is available for the object (e.g. when the object is wrapped by a type erasure) then there is no standard, portable way to assess if it inherits from a given class. This implementation is compiler dependent and assumes that the compiler uses the Itanium C++ ABI.

No check on the object pointed by objPtr is made. The caller must ensure that objPtr points to a valid object with RTTI information (e.g. with at least one virtual method in its declaration or in one of its base classes).

Parameters
objPtrpointer to the object.
Returns
true if the pointed object inherits from the template class DataType.

◆ operator!=()

template<typename T , typename W >
std::enable_if_t<one_observer_ptr<T, W>::value, bool> EA::operator!= ( const T &  p1,
const W &  p2 
)

◆ operator<()

bool EA::operator< ( const RetrievalResult  lhs,
const RetrievalResult  rhs 
)
inline

Comparison operator for retrieval results.

The idea is that a result is "smaller" than another if it is worse, e.g. NOTAVAILABLE < SUCCESS.

Parameters
lhsThe left hand side of the comparison operation.
rhsThe right hand side of the comparison operation.
Returns
true if lhs is worse than rhs.

◆ operator<<() [1/4]

std::ostream& EA::operator<< ( std::ostream &  out,
const ObjectCategory category 
)
inline

◆ operator<<() [2/4]

std::ostream& EA::operator<< ( std::ostream &  out,
InsertionResult  ir 
)
inline

Insertion operator for InsertionResult.

◆ operator<<() [3/4]

std::ostream& EA::operator<< ( std::ostream &  out,
RetrievalResult  rr 
)
inline

Insertion operator for RetrievalResult.

◆ operator<<() [4/4]

std::ostream& EA::operator<< ( std::ostream &  out,
const Memory::Status  status 
)
inline

Insertion operator for Memory::Status.

◆ operator==() [1/3]

template<typename T , typename W >
std::enable_if_t<std::is_pointer<W>::value, bool> EA::operator== ( const observer_ptr< T > &  p1,
const W &  p2 
)

◆ operator==() [2/3]

template<typename T , typename W >
std::enable_if_t<std::is_pointer<W>::value, bool> EA::operator== ( const W &  p1,
const observer_ptr< T > &  p2 
)

◆ operator==() [3/3]

template<typename T , typename W >
std::enable_if_t<one_observer_ptr_and_no_pointer<T, W>::value, bool> EA::operator== ( const T &  p1,
const W &  p2 
)

◆ RegisterAlgorithm()

EA::RegisterAlgorithm ( PersistenceAlgo  )

◆ RegisterClass() [1/3]

EA::RegisterClass ( Configurator  ,
ClingMacroConfigurator   
)

◆ RegisterClass() [2/3]

EA::RegisterClass ( Configurator  ,
RootMacroConfigurator   
)

◆ RegisterClass() [3/3]

EA::RegisterClass ( Configurator  ,
TextFileConfigurator   
)

◆ RegisterDataProvider()

EA::RegisterDataProvider ( RootDataProvider  )

◆ RegisterLineHandler()

EA::RegisterLineHandler ( TokenizedConfigLineHandler  )

◆ RegisterPersistence()

EA::RegisterPersistence ( RootPersistenceService  )

◆ RegisterTokensHandler() [1/4]

EA::RegisterTokensHandler ( PersistenceConfigurationTokensHandler  ,
"Persistence"   
)

◆ RegisterTokensHandler() [2/4]

EA::RegisterTokensHandler ( PersistenceConfigurationTokensHandler  ,
"PersistenceTemplate"   
)

◆ RegisterTokensHandler() [3/4]

EA::RegisterTokensHandler ( DataProviderConfigurationTokensHandler  ,
"DataProvider"   
)

◆ RegisterTokensHandler() [4/4]

EA::RegisterTokensHandler ( EventLoopConfigurationTokensHandler  ,
"EventLoop"   
)

◆ ToString() [1/2]

const std::string& EA::ToString ( InsertionResult  ir)
inline

Convert an InsertionResult to a string.

◆ ToString() [2/2]

const std::string& EA::ToString ( RetrievalResult  rr)
inline

Convert a RetrievResult to a string.

◆ wrapper_cast() [1/3]

void * EA::wrapper_cast ( ObjectWrapper wrapper,
const std::type_info &  typeInfo 
)

Cast function to extract wrapped pointer from wrapper in a type-safe way.

This overload for wrapper_cast is to allow for a type_safe extraction of the wrapped object when the type of the requested object is unknown until runtime (e.g. in PersistenceService methods for generic persistence, which are virtual and thus cannot be template but still needs to be generic).

The function returns a void* since in principle there is no way to know the object type at compile time. It is user responsibility to cast the returned pointer to the appropriate type.

Parameters
wrapperThe data wrapper object.
typeInfoThe type of the desired object.
Returns
a pointer to the wrapped object (nullptr if the wrapper wraps nothing or if the type of wrapped object does not match #typeInfo).

◆ wrapper_cast() [2/3]

template<typename DataType >
observer_ptr<typename std::enable_if<std::is_class<DataType>::value, DataType>::type> EA::wrapper_cast ( ObjectWrapper wrapper)

Cast function to extract wrapped pointer from wrapper in a type-safe way.

The wrapped object is returned if DataType corresponds to its class or to a mother class. In case DataType is the type of a mother class, then the wrapped objects must be polymorphic (i.e. have at least one virtual method) in order for the base classes to be checked. For non-polymorphic objects this method returns a non-NULL value only if the type match between the wrapped object and DataType is exact.

Parameters
wrapperThe data wrapper object.
Returns
pointer to the wrapped object (nullptr if there is a type mismatch).

◆ wrapper_cast() [3/3]

template<typename DataType >
observer_ptr<typename std::enable_if<!std::is_class<DataType>::value, DataType>::type> EA::wrapper_cast ( ObjectWrapper wrapper)

Cast function to extract wrapped pointer from wrapper in a type-safe way.

A pointer to the wrapped object is returned if its type matches exactly the template argument DataType.

Parameters
wrapperThe data wrapper object.
Returns
pointer to the wrapped object (nullptr if there is a type mismatch).

Variable Documentation

◆ memLevelNames

const std::array<const std::string, 4> EA::memLevelNames {"NORMAL", "WARNING", "CRITICAL", "EXHAUSTED"}

Printable names for the memory levels.

◆ ObjectCategoryName

const std::array<std::string, 4> EA::ObjectCategoryName {"None", "Event", "Pass", "Global"}