| MarlinMT
    0.1.0
    | 
IScheduler interface Interface for implementing a scheduling algorithm for event processing. More...
#include <IScheduler.h>
Inherits marlinmt::Component.
Inherited by marlinmt::concurrency::PEPScheduler, and marlinmt::SimpleScheduler.
| Public Member Functions | |
| IScheduler () | |
| Constructor.  More... | |
| virtual | ~IScheduler ()=default | 
| virtual void | initialize () override | 
| Initialize the scheduler.  More... | |
| virtual void | end ()=0 | 
| Terminate the scheduler activites Cleanup memory, etc ...  More... | |
| virtual void | processRunHeader (std::shared_ptr< RunHeader > rhdr)=0 | 
| Process a run header.  More... | |
| virtual void | pushEvent (std::shared_ptr< EventStore > event)=0 | 
| Push a new event to the scheduler for processing.  More... | |
| virtual void | popFinishedEvents (std::vector< std::shared_ptr< EventStore >> &events)=0 | 
| Retrieve finished events from the scheduler.  More... | |
| virtual std::size_t | freeSlots () const =0 | 
| Get the number of free event slots.  More... | |
|  Public Member Functions inherited from marlinmt::Component | |
| Component ()=delete | |
| No default constructor.  More... | |
| Component (const Component &)=delete | |
| No copy or assignement.  More... | |
| Component & | operator= (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 Application & | application () const | 
| Get the application in which the component is registered.  More... | |
| Application & | application () | 
| 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 §ion, bool throwIfNotFound=false) | 
| Set the parameters from the configuration section.  More... | |
| void | getParameters (ConfigSection §ion, 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< ParameterImpl > | addParameter (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< ParameterImpl > | addParameter (EParameterType paramType, const std::string &name, const std::string &desc, std::shared_ptr< T > value, T defVal) | 
| Add a parameter.  More... | |
| template<typename T > | |
| T | parameter (const std::string &name) const | 
| Get a parameter value.  More... | |
| template<typename T > | |
| 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 | 
| Additional Inherited Members | |
|  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 | 
|  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... | |
IScheduler interface Interface for implementing a scheduling algorithm for event processing.
The scheduling can be sequential or parallel (inter-event / intra-event / both). See implementation classes for more details.
Definition at line 23 of file IScheduler.h.
| marlinmt::IScheduler::IScheduler | ( | ) | 
Constructor.
Definition at line 8 of file IScheduler.cc.
| 
 | virtualdefault | 
| 
 | pure virtual | 
Terminate the scheduler activites Cleanup memory, etc ...
Implemented in marlinmt::concurrency::PEPScheduler, and marlinmt::SimpleScheduler.
| 
 | pure virtual | 
Get the number of free event slots.
Implemented in marlinmt::concurrency::PEPScheduler, and marlinmt::SimpleScheduler.
| 
 | overridevirtual | 
Initialize the scheduler.
Read the config section from the configuration
Reimplemented from marlinmt::Component.
Reimplemented in marlinmt::concurrency::PEPScheduler, and marlinmt::SimpleScheduler.
Definition at line 15 of file IScheduler.cc.
References marlinmt::Component::application(), marlinmt::Application::configuration(), and marlinmt::Component::setParameters().
Referenced by marlinmt::SimpleScheduler::initialize(), and marlinmt::concurrency::PEPScheduler::initialize().
| 
 | pure virtual | 
Retrieve finished events from the scheduler.
| events | the list of event to retrieve | 
Implemented in marlinmt::concurrency::PEPScheduler, and marlinmt::SimpleScheduler.
| 
 | pure virtual | 
Process a run header.
| rhdr | the run header to process | 
Implemented in marlinmt::concurrency::PEPScheduler, and marlinmt::SimpleScheduler.
| 
 | pure virtual | 
Push a new event to the scheduler for processing.
| event | the event to push | 
Implemented in marlinmt::concurrency::PEPScheduler, and marlinmt::SimpleScheduler.