MarlinMT  0.1.0
marlinmt::SimpleScheduler Class Reference

SimpleScheduler class. More...

#include <SimpleScheduler.h>

Inherits marlinmt::IScheduler.

Public Types

using ProcessorSequence = std::shared_ptr< SuperSequence >
 
- Public Types inherited from marlinmt::Component
using LoggerPtr = Logging::Logger
 
- Public Types inherited from marlinmt::Configurable
using ParameterMap = std::map< std::string, std::shared_ptr< ParameterImpl > >
 
using iterator = ParameterMap::iterator
 
using const_iterator = ParameterMap::const_iterator
 

Public Member Functions

 SimpleScheduler ()
 
void initialize () override
 Initialize the scheduler. More...
 
void end () override
 Terminate the scheduler activites Cleanup memory, etc ... More...
 
void processRunHeader (std::shared_ptr< RunHeader > rhdr) override
 Process a run header. More...
 
void pushEvent (std::shared_ptr< EventStore > event) override
 Push a new event to the scheduler for processing. More...
 
void popFinishedEvents (std::vector< std::shared_ptr< EventStore >> &events) override
 Retrieve finished events from the scheduler. More...
 
std::size_t freeSlots () const override
 Get the number of free event slots. More...
 
- Public Member Functions inherited from marlinmt::IScheduler
 IScheduler ()
 Constructor. More...
 
virtual ~IScheduler ()=default
 
- Public Member Functions inherited from marlinmt::Component
 Component ()=delete
 No default constructor. More...
 
 Component (const Component &)=delete
 No copy or assignement. More...
 
Componentoperator= (const Component &)=delete
 
virtual ~Component ()=default
 Default destructor. More...
 
 Component (const std::string &type)
 Constructor with component type. More...
 
const std::string & type () const
 Get the component name. More...
 
const std::string & name () const
 Get the component name. More...
 
void setName (const std::string &n)
 Set the component name. More...
 
const std::string & description () const
 Get the component description. More...
 
void setDescription (const std::string &desc)
 Set the component description. More...
 
const Applicationapplication () const
 Get the application in which the component is registered. More...
 
Applicationapplication ()
 Get the application in which the component is registered. More...
 
template<class T >
Logging::StreamType log () const
 Log a message with specific log level. More...
 
Logging::StreamType debug () const
 Shortcut for log<DEBUG>() More...
 
Logging::StreamType message () const
 Shortcut for log<MESSAGE>() More...
 
Logging::StreamType warning () const
 Shortcut for log<WARNING>() More...
 
Logging::StreamType error () const
 Shortcut for log<ERROR>() More...
 
void setVerbosity (const std::string &level)
 Set the verbosity level. More...
 
const std::string & verbosity () const
 Get the verbosity level. More...
 
bool isInitialized () const
 Whether the component has been initialized. More...
 
void setup (Application *app)
 Setup the component. More...
 
void printParameters () const
 Print the component parameters. More...
 
template<class T >
void printParameters () const
 Print the component parameters at specific verbosity. More...
 
void setParameters (const ConfigSection &section, bool throwIfNotFound=false)
 Set the parameters from the configuration section. More...
 
void getParameters (ConfigSection &section, const std::set< std::string > &exclude={}) const
 Get the parameters from configurable object and populate the config section with. More...
 
- Public Member Functions inherited from marlinmt::Configurable
 Configurable ()=default
 
virtual ~Configurable ()=default
 
template<typename T >
std::shared_ptr< ParameterImpladdParameter (EParameterType paramType, const std::string &name, const std::string &desc, std::shared_ptr< T > value)
 Add a parameter. More...
 
template<typename T >
std::shared_ptr< ParameterImpladdParameter (EParameterType paramType, const std::string &name, const std::string &desc, std::shared_ptr< T > value, T defVal)
 Add a parameter. More...
 
template<typename T >
parameter (const std::string &name) const
 Get a parameter value. More...
 
template<typename T >
parameter (const std::string &name, const T &fallback) const
 Get a parameter value. More...
 
void checkParameter (const std::string &name) const
 Check if the parameter has been registered. More...
 
bool exists (const std::string &name) const
 Return true if the parameter has been registered. More...
 
bool isSet (const std::string &name) const
 Returns true if the parameter exists and is set, false otherwise. More...
 
void clear ()
 Remove all parameters. More...
 
void unset ()
 Unset all registered parameters. More...
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 

Private Attributes

ProcessorSequence _superSequence {nullptr}
 < The processor super sequence More...
 
std::shared_ptr< EventStore_currentEvent {nullptr}
 

Additional Inherited Members

- Protected Attributes inherited from marlinmt::Component
std::string _type {}
 The component type. More...
 
std::string _name {}
 The component name. More...
 
std::string _description {"No description"}
 The component description. More...
 
Application_application {nullptr}
 The application in which the component has been registered. More...
 
LoggerPtr _logger {nullptr}
 The logger instance. More...
 
StringParameter _verbosity { *this, "Verbosity", "The component verbosity level", "MESSAGE" }
 The verbosity level of the logger (parameter) More...
 
- Protected Attributes inherited from marlinmt::Configurable
ParameterMap _parameters {}
 The parameter map. More...
 

Detailed Description

SimpleScheduler class.

Definition at line 16 of file SimpleScheduler.h.

Member Typedef Documentation

◆ ProcessorSequence

Definition at line 18 of file SimpleScheduler.h.

Constructor & Destructor Documentation

◆ SimpleScheduler()

marlinmt::SimpleScheduler::SimpleScheduler ( )

Definition at line 15 of file SimpleScheduler.cc.

References marlinmt::Component::setName().

Member Function Documentation

◆ end()

void marlinmt::SimpleScheduler::end ( )
overridevirtual

Terminate the scheduler activites Cleanup memory, etc ...

Implements marlinmt::IScheduler.

Definition at line 49 of file SimpleScheduler.cc.

References marlinmt::Component::_logger, and _superSequence.

◆ freeSlots()

std::size_t marlinmt::SimpleScheduler::freeSlots ( ) const
overridevirtual

Get the number of free event slots.

Implements marlinmt::IScheduler.

Definition at line 81 of file SimpleScheduler.cc.

References _currentEvent.

◆ initialize()

void marlinmt::SimpleScheduler::initialize ( )
overridevirtual

◆ popFinishedEvents()

void marlinmt::SimpleScheduler::popFinishedEvents ( std::vector< std::shared_ptr< EventStore >> &  events)
overridevirtual

Retrieve finished events from the scheduler.

Parameters
eventsthe list of event to retrieve

Implements marlinmt::IScheduler.

Definition at line 72 of file SimpleScheduler.cc.

References _currentEvent.

◆ processRunHeader()

void marlinmt::SimpleScheduler::processRunHeader ( std::shared_ptr< RunHeader rhdr)
overridevirtual

Process a run header.

Parameters
rhdrthe run header to process

Implements marlinmt::IScheduler.

Definition at line 58 of file SimpleScheduler.cc.

References _superSequence.

◆ pushEvent()

void marlinmt::SimpleScheduler::pushEvent ( std::shared_ptr< EventStore event)
overridevirtual

Push a new event to the scheduler for processing.

Parameters
eventthe event to push

Implements marlinmt::IScheduler.

Definition at line 64 of file SimpleScheduler.cc.

References _currentEvent, and _superSequence.

Member Data Documentation

◆ _currentEvent

std::shared_ptr<EventStore> marlinmt::SimpleScheduler::_currentEvent {nullptr}
private

Definition at line 35 of file SimpleScheduler.h.

Referenced by freeSlots(), popFinishedEvents(), and pushEvent().

◆ _superSequence

ProcessorSequence marlinmt::SimpleScheduler::_superSequence {nullptr}
private

< The processor super sequence

The current event being processed

Definition at line 33 of file SimpleScheduler.h.

Referenced by end(), initialize(), processRunHeader(), and pushEvent().


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